题目
给你一个正整数n,生成一个包含1到n的平方的所有元素,且元素按顺时针顺序螺旋排列成n x n的正方形矩阵。
示例:
输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]
解析
螺旋矩阵是指按照顺时针(或逆时针)螺旋顺序排列元素的二维矩阵。比如:给定一个如下的3x3矩阵,按顺时针螺旋顺序输出的结果应为:1, 2, 3, 6, 9, 8, 7, 4, 5。
[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
解决螺旋矩阵问题的核心在于:设计一种遍历矩阵的方法,使得遍历路径形成螺旋形态。
为了方便遍历矩阵并确定移动方向,需要定义四个变量来记录当前边界。初始状态下,它们都指向各自边界的起始位置。
left:表示当前层左边界索引,初始值为0。
right:表示当前层右边界索引,初始值为n - 1。
top:表示当前层上边界索引,初始值为0。
bottom:表示当前层下边界索引,初始值为n - 1。