LeetCode 54. 螺旋矩阵
原题链接
中等
作者:
toFuture
,
2025-03-16 16:13:43
· 江苏
,
所有人可见
,
阅读 1
一个方向数组
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
vector<int> res;
int n=matrix.size();
if(!n)return res;
int m=matrix[0].size();
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
vector<vector<bool>> st(n, vector<bool>(m));
for(int i=0,x=0,y=0,d=0;i<n*m;i++)
{
res.push_back(matrix[x][y]);
st[x][y]=true;
int a=x+dx[d];
int b=y+dy[d];
if(a<0||b<0||a>=n||b>=m||st[a][b])
{
d=(d+1)%4;
a=x+dx[d];
b=y+dy[d];
}
x=a;
y=b;
}
return res;
}
};