059.螺旋矩阵 II
给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,元素按顺时针顺序螺旋排列的正方形矩阵。
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
class Solution:
def generateMatrix(self, n: int) -> [[int]]:
A = [[0] * n for _ in range(n)] # 用0填充整个方阵
left, right, up, down = 0, n - 1, 0, n - 1
num = 1
while left <= right and up <= down:
for i in range(left, right + 1):
A[up][i] = num
num += 1
up += 1
for i in range(up, down + 1):
A[i][right] = num
num += 1
right -= 1
for i in reversed(range(left, right + 1)):
A[down][i] = num
num += 1
down -= 1
for i in reversed(range(up, down + 1)):
A[i][left] = num
num += 1
left += 1
return A