59. 螺旋矩阵 II
注意当n为奇数的时候,最中心的点走不到,要单独赋值一下
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> res(n,vector<int>(n));
int cnt=1;
int i,j;
for(int k=0;k<=n/2;k++){
i=k,j=k;
for(;j<n-k-1;j++)res[i][j]=cnt++;
i=k,j=n-k-1;
for(;i<n-k-1;i++)res[i][j]=cnt++;
i=n-k-1,j=n-k-1;
for(;j>k;j--)res[i][j]=cnt++;
i=n-k-1,j=k;
for(;i>k;i--)res[i][j]=cnt++;
}
if(n&1) res[n>>1][n>>1]=cnt;
return res;
}
};
网友评论