LeetCode 54. 螺旋矩阵
原题链接
简单
作者:
麻衣学姐的可爱小男友
,
2024-01-03 20:08:15
,
所有人可见
,
阅读 42
int jd(int x,int range){
if(x<0||x>=range) return false;
else return true;
}
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();
vector<vector<bool>> st(n,vector<bool>(m));
//memset(st,0,sizeof st);
int cnt=n*m;
int dy[4]={1,0,-1,0};
int dx[4]={0,1,0,-1};
int i=0;
int j=0;
int mod=0;
res.push_back(matrix[i][j]);
st[0][0]=1;
cnt--;
int x=12;
while(cnt){
if(jd(i+dx[mod],n)&&jd(j+dy[mod],m)&&!st[i+dx[mod]][j+dy[mod]]){
i=i+dx[mod];
j=j+dy[mod];
st[i][j]=1;
res.push_back(matrix[i][j]);
cnt--;
}
else{
mod++;
mod=mod%4;
}
}
return res;
}
};