【second】Spiral Matrix
注意条件。
vector<int> spiralOrder(vector<vector<int> > &matrix) { // Note: The Solution object is instantiated only once and is reused by each test case. vector<int> res; if(matrix.empty()||matrix[0].empty()) return res; int m = matrix.size(); int n = matrix[0].size(); int startx = 0,starty = 0; while(2*startx<m&&2*starty<n) { generate(startx,starty,m-1-startx,n-1-starty,res,matrix); ++startx; ++starty; } return res; } void generate(int startx,int starty,int endx,int endy,vector<int>& res,vector<vector<int> >& matrix) { int i; for(i=starty;i<=endy;i++) res.push_back(matrix[startx][i]); for(i=startx+1;i<=endx;i++) res.push_back(matrix[i][endy]); if(startx<endx) { for(i=endy-1;i>=starty;i--) res.push_back(matrix[endx][i]); } if(starty<endy) { for(i=endx-1;i>=startx+1;i--) res.push_back(matrix[i][starty]); } }