给你一个 m
行 n
列的矩阵 matrix
,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
示例 1:
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]
示例 2:
输入:matrix = [[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 class Solution { 2 public: 3 vector<int> result; 4 5 void travel(vector<vector<int>> matrix){ 6 int m=matrix.size(); //行数 7 int n=matrix[0].size(); //列数 8 int l=0,r=n-1,u=0,b=m-1; //定义四条边界 9 while(true){ 10 for(int i=l;i<=r;++i) 11 result.push_back(matrix[u][i]); 12 if (++u>b) 13 break; 14 for(int i=u;i<=b;++i) 15 result.push_back(matrix[i][r]); 16 if (--r<l) 17 break; 18 for(int i=r;i>=l;--i) 19 result.push_back(matrix[b][i]); 20 if (--b<u) 21 break; 22 for (int i=b;i>=u;--i) 23 result.push_back(matrix[i][l]); 24 if (++l>r) 25 break; 26 } 27 28 } 29 vector<int> spiralOrder(vector<vector<int>>& matrix) { 30 travel(matrix); 31 return result; 32 } 33 };
标签:10,matrix,int,54,矩阵,力扣,vector,result From: https://www.cnblogs.com/coderhrz/p/17093511.html