题解 | #螺旋矩阵#
螺旋矩阵
https://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31
public: vector<int> spiralOrder(vector<vector<int> > &matrix) { vector<int> ans; int col=matrix.size(); int row=matrix[0].size(); if(col==0 || row==0) return {}; //定义上下左右四个边界 int u=0; int d=col-1; int l=0; int r=row-1; while(true) { //顺序一定是右下左上 //向右边 for(int i=l; i<=r; i++) ans.push_back(matrix[u][i]); //重新定义上边界 if(++u>d) break; //向下 for(int i=u; i<=d; i++) ans.push_back(matrix[i][r]); //定义右边界 if(--r<l) break; for(int i=r; i>=l; i--) ans.push_back(matrix[d][i]);; if(--d<u) break; for(int i=d; i>=u; i--) ans.push_back(matrix[i][l]); if(++l>r) break; } return ans; } };