zoukankan      html  css  js  c++  java
  • [leetcode]Spiral Matrix

    class Solution {
    public:
        vector<int> spiralOrder(vector<vector<int> > &matrix) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
            if(matrix.empty()) return vector<int>();
            
            int M = matrix.size();
            int N = matrix[0].size();
            
            vector<int> result;
            
            int start = 0;
     
            int S = min(M, N);
            for(start = 0; start < S/2; start++){
                for(int j = start; j < N-start; j++){
                    result.push_back(matrix[start][j]);
                }
                for(int i = start+1; i < M-start-1; i++){
                    result.push_back(matrix[i][N-1-start]);
                }
                for(int j = N-1-start; j >= start; j--){
                    result.push_back(matrix[M-1-start][j]);
                }
                for(int i = M-2-start; i>start; i--){
                    result.push_back(matrix[i][start]);
                }
                
            }
            
            if(M <= N && M % 2 != 0){
                for(int j = start; j < N-start; j++){
                    result.push_back(matrix[start][j]);
                }
            }
            
            if(N < M && N % 2 != 0){
                for(int i = start; i < M-start; i++){
                    result.push_back(matrix[i][start]);
                }
            }
            
            
            return result;
            
            
        }
    };


  • 相关阅读:
    2.搭建第一个http服务:三层架构
    1.基础入门
    MyISAM和InnoDB索引区别
    分区
    事务的四大特性
    事务
    String
    自己写native方法
    序列化和反序列化
    反射
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3223598.html
Copyright © 2011-2022 走看看