与LeetCode54是同样的题。
我的解题:
设置上下左右四个边界为,a c d b
当a>c,c<a,d>b,b<d时返回vector<int> res
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
vector<int> res;
int a=0,d=0;
if(matrix.size()==0) return res;
int c=matrix.size()-1;
int b=matrix[0].size()-1;
while(1){
for(int i=d;i<=b;i++) res.push_back(matrix[a][i]);
a++;
if(a>c) return res;
for(int i=a;i<=c;i++) res.push_back(matrix[i][b]);
b--;
if(b<d) return res;
for(int i=b;i>=d;i--) res.push_back(matrix[c][i]);
c--;
if(c<a) return res;
for(int i=c;i>=a;i--) res.push_back(matrix[i][d]);
d++;
if(d>b) return res;
}
}
};