LeetCode 59. 螺旋矩阵 II

难度:中等。

【54. 螺旋矩阵】的代码拿来改一下即可。

正确解法:

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> matrix(n);
        for(int i = 0; i < n; i++)matrix[i].resize(n);
        int k = 0, i = 0, j = 0, t = 1;
        matrix[0][0] = t;
        while(true){
            if(j + 1 >= n - k)break;
            for(j = j + 1; j < n - k; j++)matrix[i][j] = ++t;
            j--;
            if(i + 1 >= n - k)break;
            for(i = i + 1; i < n - k; i++)matrix[i][j] = ++t;
            i--;
            if(j - 1 < k)break;
            for(j = j - 1; j >= k; j--)matrix[i][j] = ++t;
            j++;
            k++;
            if(i - 1 < k)break;
            for(i = i - 1; i >= k; i--)matrix[i][j] = ++t;
            i++;
        }
        return matrix;
    }
};

结果:
LeetCode 59. 螺旋矩阵 II

上一篇:【剑指Offer-59-I】滑动窗口的最大值


下一篇:更新啦!第 59 期《HelloGitHub》开源月刊