|
发表于 2023-11-13 22:35:26
|
显示全部楼层
这是一个经典的螺旋矩阵问题,可以通过模拟填充的方式来解决。以下是一个可能的解决方案:
- def generateMatrix(n):
- matrix = [[0] * n for _ in range(n)]
- num = 1
- left, right, top, bottom = 0, n - 1, 0, n - 1
- while num <= n * n:
- for i in range(left, right + 1):
- matrix[top][ i] = num
- num += 1
- top += 1
- for i in range(top, bottom + 1):
- matrix[ i][right] = num
- num += 1
- right -= 1
- for i in range(right, left - 1, -1):
- matrix[bottom][ i] = num
- num += 1
- bottom -= 1
- for i in range(bottom, top - 1, -1):
- matrix[ i][left] = num
- num += 1
- left += 1
- return matrix
- n = 4
- result = generateMatrix(n)
- for row in result:
- print(' '.join(str(num).rjust(2) for num in row))
复制代码
这段代码定义了一个 generateMatrix 函数,用于生成螺旋矩阵。首先创建一个n×n的二维数组 matrix ,然后按照顺时针螺旋的顺序填充数字。最后按照要求输出结果。 |
|