首页 > 其他 > 详细

59. 螺旋矩阵 II

时间:2020-04-09 00:43:03      阅读:98      评论:0      收藏:0      [点我收藏+]

题目描述:

给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

示例:

输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]

思想:

上->右->下->左 循环赋值

代码:

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> ans(n);
        for (int i = 0; i < ans.size(); i++)   //注意先设定好ans的size
            ans[i].resize(n);
        int num = n * n;
        int i = 1;
        int l = 0;
        int r = n - 1;
        int u = 0;
        int d = n - 1;
        while (i <= num) {
            for (int j = l; j <= r && i <= num; i++, j++)
                ans[u][j] = i;
            u++;
            for (int j = u; j <= d && i <= num; i++, j++)
                ans[j][r] = i;
            r--;
            for (int j = r; j >= l && i <= num; i++, j--)
                ans[d][j] = i;
            d--;
            for (int j = d; j >= u && i <= num; i++, j--)
                ans[j][l] = i;
            l++;
        }
        return ans;
    }
};

 

59. 螺旋矩阵 II

原文:https://www.cnblogs.com/thefatcat/p/12664071.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!