Problem: LCR 146. 螺旋遍历二维数组
思路
多个循环螺旋模拟
class Solution {
public:
vector<int> spiralArray(vector<vector<int>>& array) {
vector<int>res;
int m=array.size();
if(m==0){
return res;
}
int n=array[0].size(),i=0,flag=0;
while(res.size()<m*n){
for(int j=i;j<n-i;j++){
res.push_back(array[i][j]);
if(res.size()==m*n){
flag=1;
break;
}
}
if(flag)break;
for(int j=i+1;j<m-i;j++){
res.push_back(array[j][n-i-1]);
if(res.size()==m*n){
flag=1;
break;
}
}
if(flag)break;
for(int j=n-i-2;j>=i;j--){
res.push_back(array[m-1-i][j]);
if(res.size()==m*n){
flag=1;
break;
}
}
if(flag)break;
for(int j=m-i-2;j>=i+1;j--){
res.push_back(array[j][i]);
if(res.size()==m*n){
flag=1;
break;
}
}
if(flag)break;
i++;
}
return res;
}
};
标签:146,break,遍历,int,res,力扣,flag,array,size
From: https://blog.51cto.com/u_15974747/8819194