zoukankan      html  css  js  c++  java
  • LeetCode54:螺旋矩阵

    给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。

    示例 1:

    输入:
    [
    [ 1, 2, 3 ],
    [ 4, 5, 6 ],
    [ 7, 8, 9 ]
    ]
    输出: [1,2,3,6,9,8,7,4,5]
    示例 2:

    输入:
    [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9,10,11,12]
    ]
    输出: [1,2,3,4,8,12,11,10,9,5,6,7]

    采用旋转的方式,按照路径进行判断,从外层逐渐往内走。注意如果矩阵列数为1,那么初始方向应该是向下的。

     1 class Solution {
     2 public:
     3     vector<int> spiralOrder(vector<vector<int>>& matrix) {
     4         int m=matrix.size();
     5         if(!m) return {};
     6         int n=matrix[0].size();
     7         int left=0,right=n-1,up=0,down=m-1;
     8         int x=0,y=0;
     9         vector<int> ret;
    10         int direction;
    11         direction=n==1?1:0;
    12         while(ret.size()!=m*n){
    13             ret.push_back(matrix[x][y]);  
    14             switch(direction){
    15                 case 0:
    16                     y++;
    17                     if(y==right)
    18                         direction=1;
    19                     break;
    20                 case 1:
    21                     x++;
    22                     if(x==down)
    23                         direction=2;
    24                     break;
    25                 case 2:
    26                     y--;
    27                     if(y==left)
    28                         direction=3;
    29                     break;
    30                 case 3:
    31                     x--;
    32                     if(x==up+1){
    33                         left++;
    34                         up++;
    35                         right--;
    36                         down--;
    37                     }
    38                     if(x==up)
    39                         direction=0;
    40                     break;
    41             }
    42 
    43               
    44         } 
    45         return ret;
    46     }
    47 };
  • 相关阅读:
    圆形按钮窗口控制-不断减少的圆圈
    图像按钮和模拟Windows媒体播放器UI
    圆形按钮
    本机Win32主题感知所有者绘制控件没有MFC
    CRegionButton -一个多向按钮
    Iconits
    CxShadeButton
    管道符 |
    gedit
    more/less
  • 原文地址:https://www.cnblogs.com/rookiez/p/13210981.html
Copyright © 2011-2022 走看看