模拟过程题目
螺旋矩阵
给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
看视频大概知道思路了,但是自己写的时候,还是遇到了困难,用的gpt生成的答案最后,后面有时间自己再写一下这个程序
```python class Solution: def generateMatrix(self, n: int) -> List[List[int]]: if n == 0: return []
matrix = [[0] * n for _ in range(n)]
num = 1
layers = n // 2 # 仅计算到最内层之前的层数
for layer in range(layers):
# 从左到右填充上边界
for i in range(layer, n - layer):
matrix[layer][i] = num
num += 1
# 从上到下填充右边界
for i in range(layer + 1, n - layer):
matrix[i][n - layer - 1] = num
num += 1
# 从右到左填充下边界
for i in range(n - layer - 2, layer - 1, -1):
matrix[n - layer - 1][i] = num
num += 1
# 从下到上填充左边界
for i in range(n - layer - 2, layer, -1):
matrix[i][layer] = num
num += 1
# 如果矩阵维数为奇数,填充中心元素
if n % 2 != 0:
matrix[n // 2][n // 2] = num
return matrix