1514 字
约 5 分钟
12
059.螺旋矩阵 II
无标签

059.螺旋矩阵 II

作者:沉默王二
发布时间:2022-11-12T08:45:31.172+0800


本题解同时收录在星球专栏《二哥的 LeetCode 刷题笔记》中,专栏托管在语雀平台上(更方便你沉浸式阅读和做笔记),访问地址和密码:https://t.zsxq.com/6iuzn6I

059.螺旋矩阵 II

题意

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

难度

中等

示例

示例 1:

输入:n = 3

示例 2:

输入:n = 1

分析

这题和 054.螺旋矩阵 相差无几,都是需要 螺旋 遍历整个二维数组,只不过上一次是依次取数字,而这次,我们需要填充数字而已。

还是一样的按照顺时针遍历外层,然后逐步缩小外层,这题便能够解决了。

class Solution{

        int[][] resMatrix = new int[n][n];        if(n == 0)            return resMatrix;        int up = 0,down = n - 1;        int lef = 0,rig = n - 1;        int cnt = 0;        for(;;){            for(int i = lef;i <= rig;i++)                resMatrix[up][i] = ++cnt;            if(++up > down) break;            for(int i = up;i <= down;i++)                resMatrix[i][rig] = ++cnt;            if(--rig < lef) break;            for(int i = rig;i >= lef;i--)                resMatrix[down][i] = ++cnt;            if(--down < up) break;            for(int i = down;i >= up;i--)                resMatrix[i][lef] = ++cnt;            if(++lef > rig) break;        }        return resMatrix;    }}

总结

本题与 054.螺旋矩阵 的思路以及代码大体上没有差别,都是顺时针遍历然后缩小边界,再填充/获取相应位置的数据即可。

力扣链接:https://leetcode.cn/problems/spiral-matrix-ii/

一步一个脚印

不积跬步无以至千里,不积小流无以成江海。LeetCode - 100天从算法小白到卷王正式启动了,我们计划周一到周五至少每天更新一篇,周六周日更新一篇,目标 300 道 LeetCode 经典题。

PDF 版本目前只针对**二哥编程星球 的球友开放,如果你也想一起打卡学习算法的话,戳链接 **加入我们吧。

一个人可以走得很快,但一群人才能走得更远。二哥编程星球 (目前已有 1000 多名球友加入)里面的每个球友都非常的友善,除了鼓励你,还会给你提出合理的建议,一起冲!

本题解同时收录在星球专栏《二哥的 LeetCode 刷题笔记》中,专栏托管在语雀平台上(更方便你沉浸式阅读和做笔记),访问地址和密码:https://t.zsxq.com/6iuzn6I

059.螺旋矩阵 II

题意

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

难度

中等

示例

示例 1:

输入:n = 3

示例 2:

输入:n = 1

分析

这题和 054.螺旋矩阵 相差无几,都是需要 螺旋 遍历整个二维数组,只不过上一次是依次取数字,而这次,我们需要填充数字而已。

还是一样的按照顺时针遍历外层,然后逐步缩小外层,这题便能够解决了。

class Solution{

        int[][] resMatrix = new int[n][n];        if(n == 0)            return resMatrix;        int up = 0,down = n - 1;        int lef = 0,rig = n - 1;        int cnt = 0;        for(;;){            for(int i = lef;i <= rig;i++)                resMatrix[up][i] = ++cnt;            if(++up > down) break;            for(int i = up;i <= down;i++)                resMatrix[i][rig] = ++cnt;            if(--rig < lef) break;            for(int i = rig;i >= lef;i--)                resMatrix[down][i] = ++cnt;            if(--down < up) break;            for(int i = down;i >= up;i--)                resMatrix[i][lef] = ++cnt;            if(++lef > rig) break;        }        return resMatrix;    }}

总结

本题与 054.螺旋矩阵 的思路以及代码大体上没有差别,都是顺时针遍历然后缩小边界,再填充/获取相应位置的数据即可。

力扣链接:https://leetcode.cn/problems/spiral-matrix-ii/

一步一个脚印

不积跬步无以至千里,不积小流无以成江海。LeetCode - 100天从算法小白到卷王正式启动了,我们计划周一到周五至少每天更新一篇,周六周日更新一篇,目标 300 道 LeetCode 经典题。

PDF 版本目前只针对**二哥编程星球 的球友开放,如果你也想一起打卡学习算法的话,戳链接 **加入我们吧。

一个人可以走得很快,但一群人才能走得更远。二哥编程星球 (目前已有 1000 多名球友加入)里面的每个球友都非常的友善,除了鼓励你,还会给你提出合理的建议,一起冲!

本题解同时收录在星球专栏《二哥的 LeetCode 刷题笔记》中,专栏托管在语雀平台上(更方便你沉浸式阅读和做笔记),访问地址和密码:https://t.zsxq.com/6iuzn6I

059.螺旋矩阵 II

题意

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

难度

中等

示例

示例 1:

输入:n = 3

示例 2:

输入:n = 1

分析

这题和 054.螺旋矩阵 相差无几,都是需要 螺旋 遍历整个二维数组,只不过上一次是依次取数字,而这次,我们需要填充数字而已。

还是一样的按照顺时针遍历外层,然后逐步缩小外层,这题便能够解决了。

class Solution{

        int[][] resMatrix = new int[n][n];        if(n == 0)            return resMatrix;        int up = 0,down = n - 1;        int lef = 0,rig = n - 1;        int cnt = 0;        for(;;){            for(int i = lef;i <= rig;i++)                resMatrix[up][i] = ++cnt;            if(++up > down) break;            for(int i = up;i <= down;i++)                resMatrix[i][rig] = ++cnt;            if(--rig < lef) break;            for(int i = rig;i >= lef;i--)                resMatrix[down][i] = ++cnt;            if(--down < up) break;            for(int i = down;i >= up;i--)                resMatrix[i][lef] = ++cnt;            if(++lef > rig) break;        }        return resMatrix;    }}

总结

本题与 054.螺旋矩阵 的思路以及代码大体上没有差别,都是顺时针遍历然后缩小边界,再填充/获取相应位置的数据即可。

力扣链接:https://leetcode.cn/problems/spiral-matrix-ii/

一步一个脚印

不积跬步无以至千里,不积小流无以成江海。LeetCode - 100天从算法小白到卷王正式启动了,我们计划周一到周五至少每天更新一篇,周六周日更新一篇,目标 300 道 LeetCode 经典题。

PDF 版本目前只针对**二哥编程星球 的球友开放,如果你也想一起打卡学习算法的话,戳链接 **加入我们吧。

一个人可以走得很快,但一群人才能走得更远。二哥编程星球 (目前已有 1000 多名球友加入)里面的每个球友都非常的友善,除了鼓励你,还会给你提出合理的建议,一起冲!

            知识星球
            
    
    
        
        扫码加入星球
        查看更多优质内容
    
    https://wx.zsxq.com/mweb/views/joingroup/join_group.html?group_id=15522885221412
059.螺旋矩阵 II
https://clxhxhhr.top/posts/2513/
作者
clxstart
发布于
2026-09-19
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。