描述
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
Python
创建全0矩阵,用旋转的方式添加数值,下一个数字不是0的时候进行转弯
class Solution:
def generateMatrix(self, n):
A = [[0] * n for _ in range(n)] # 创建n*n的全0数组
i, j, di, dj = 0, 0, 0, 1
for k in range(n*n):
A[i][j] = k + 1
if A[(i+di)%n][(j+dj)%n]: # key step
di, dj = dj, -di
i += di
j += dj
return A