当前位置:网站首页>29. print matrix clockwise

29. print matrix clockwise

2022-06-12 05:18:00 Be your goat

The finger of the sword Offer 29. Print matrix clockwise

Ideas : simulation

  • Null processing : When matrix It's empty time , Return the empty list directly
  • initialization
  • Loop printing
  • Returns a list of
class Solution {
public:
    vector<pair<int,int>> mv={
   {0,1},{1,0},{0,-1},{-1,0}};

    vector<int> spiralOrder(vector<vector<int>>& matrix) {
        int direction=0;
        vector<int> ans;
        if(matrix.empty()||matrix[0].empty())
            return ans;
        int m=matrix.size(),n=matrix[0].size();
        int sz=m*n,k=0,i=0,j=0;
        vector<vector<bool>> isVisited(m,vector<bool>(n,false));
        for(int k=0;k<sz;k++){
            ans.push_back(matrix[i][j]);
            isVisited[i][j]=true;
            int newi=i+mv[direction].first;
            int newj=j+mv[direction].second;
            if(newi<0||newi>=m||newj<0||newj>=n||isVisited[newi][newj]){
                direction=(direction+1)%4;
            }
            i+=mv[direction].first;
            j+=mv[direction].second;
        }
        return ans;
    }
};

Time complexity O(mn)

Spatial complexity O(1)

原网站

版权声明
本文为[Be your goat]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/03/202203010618459181.html

随机推荐