59. 螺旋矩阵 II

2020-07-03  本文已影响0人  来到了没有知识的荒原

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;
    }
};
上一篇 下一篇

猜你喜欢

热点阅读