int dx[]={0,1,0,-1},dy[]={1,0,-1,0};
class Solution {
public:
vector<int> ans;
vector<int> spiralOrder(vector<vector<int>>& matrix) {
int n=matrix.size(),m=matrix[0].size();
int a=0,b=-1;
for(int i=0,cur=0;i<n*m;i++)
{
int x=a+dx[cur],y=b+dy[cur];
if(x>=0 && x<n && y>=0 && y<m && matrix[x][y])
{
ans.push_back(matrix[x][y]);
matrix[x][y]=0;
}
else{
cur=(cur+1)%4;
x=a+dx[cur],y=b+dy[cur];
ans.push_back(matrix[x][y]);
matrix[x][y]=0;
}
a=x,b=y;
}
return ans;
}
};
LeetCode每日一题 54. 螺旋矩阵 (模拟)
最新推荐文章于 2024-07-12 18:12:33 发布