思路:
与下面这道题的思路一致,res存储的答案不是矩阵里面的值,而是递增的。
代码:
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
int d=0;
int x=0,y=0;
int k=1;
vector<vector<int>> res(n,vector<int> (n));
for(int i=0;i<n*n;i++){
res[x][y]=k++;
int a=x+dx[d],b=y+dy[d];
if(a < 0 || a >= n || b < 0 || b >= n || res[a][b]){
d=(d+1)%4;
a=x+dx[d];
b=y+dy[d];
}
x=a,y=b;
}
return res;
}
};
评论区