Skip to content

模拟过程题目

螺旋矩阵

给你一个正整数 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