zoukankan      html  css  js  c++  java
  • 剑指29 顺时针打印矩阵

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。

    按层模拟,设置四个标志,每次循环++left,--right,--down,++up。需要注意的是,每次循环按四个方向输出,但是要注意只有一行或者一列的情况,要进行判断和跳出。

     1 class Solution {
     2 public:
     3     vector<int> spiralOrder(vector<vector<int>>& matrix) {
     4         int row=matrix.size();
     5         if(!row)
     6             return {};
     7         int col=matrix[0].size();
     8         int left=0,right=col-1,up=0,down=row-1;
     9         int x=0,y=0;
    10         vector<int> ans;
    11         while(left<=right && up<=down){
    12             //cout<<left<<endl<<right<<endl<<up<<endl<<down;
    13             x=left;y=up;
    14             for(y=left;y<=right;++y)
    15                 ans.push_back(matrix[x][y]);
    16             --y;
    17             if(up==down) break;
    18             for(x=up+1;x<=down;++x)
    19                 ans.push_back(matrix[x][y]);
    20             --x;
    21             if(left==right) break;
    22             for(y=right-1;y>=left;--y)
    23                 ans.push_back(matrix[x][y]);
    24             ++y;
    25             for(x=down-1;x>up;--x)
    26                 ans.push_back(matrix[x][y]);
    27             ++x;
    28             
    29             ++left;
    30             --right;
    31             --down;
    32             ++up;
    33         }
    34         return ans;
    35     }
    36 };
  • 相关阅读:
    安装pandas所需c及c++依赖
    linux中文临时生效
    标维参考命令
    linux运维
    prop属性
    centos python虚拟环境安装
    centos7&python3.6uwsgi安装
    react 入坑笔记(六)
    js 实现数据结构 -- 集合(MySet)
    js 实现数据结构 -- 链表(LinkedList)
  • 原文地址:https://www.cnblogs.com/rookiez/p/13388387.html
Copyright © 2011-2022 走看看