题解 | #螺旋矩阵#
螺旋矩阵
https://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31
#include <vector> class Solution { public: vector<int> spiralOrder(vector<vector<int> > &matrix) { vector<int> res; int n=matrix.size(); if (n==0) { return res; } int left=0; int right=matrix[0].size()-1; int up=0; int down=n-1; while (left<=right&&up<=down) { //上边界从左向右 for(int i=left;i<=right;i++){ res.push_back(matrix[up][i]); } up++; if(up>down) break; //右边界从上向下 for(int i=up;i<=down;i++){ res.push_back(matrix[i][right]); } right--; if(left>right) break; //下边界从右向左 for(int i=right;i>=left;i--) res.push_back(matrix[down][i]); down--; if(up>down) break; //左边界从下向上 for (int i=down;i>=up;i--) res.push_back(matrix[i][left]); left++; if(left>right) break; } return res; } };