题解 | #螺旋矩阵#
螺旋矩阵
http://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31
class Solution {
public:
vector<int> spiralOrder(vector<vector<int> > &matrix) {
int m=matrix.size(),n=matrix[0].size();
if(m==0)
{
return {};
}
vector<int>ans;
int i=0,j=0;
bool flag=false;
while(m>0&&n>0){
for(;j<n;j++)
{
flag=true;
ans.push_back(matrix[i][j]);
}
if(flag)
{
i++;
j--;
}else{
break;
}
flag=false;
for(;i<m;i++)
{
flag=true;
ans.push_back(matrix[i][j]);
}
if(flag)
{
j--;
i--;
}else{
break;
}
flag=false;
int temp1=matrix[0].size()-n;
for(;j>=temp1;j--)
{
flag=true;
ans.push_back(matrix[i][j]);
}
if(flag)
{
i--;
j++;
}else{
break;
}
flag=false;
int temp2=matrix.size()-m;
for(;i>temp2;i--)
{
flag=true;
ans.push_back(matrix[i][j]);
}
if(flag)
{
j++;
i++;
}else{
break;
}
flag=false;
m-=1,n-=1;
}
return ans;
}
};</int></int></int>