要编写一个Python函数来生成螺旋矩阵,你可以使用以下步骤:
1. 初始化一个m行n列的矩阵,所有元素为0。
2. 定义四个变量来跟踪矩阵的边界:`top`, `bottom`, `left`, `right`。
3. 使用一个循环来遍历矩阵,按照顺时针方向(右、下、左、上)填充矩阵。
4. 在每次填充后更新边界变量,直到所有元素都被填充。
下面是一个简单的Python函数实现:
```python
def spiral_order(matrix):
res = []
if not matrix or not matrix:
return res
top, bottom, left, right = 0, len(matrix) - 1, 0, len(matrix) - 1
while top <= bottom and left <= right:
从左到右
for i in range(left, right + 1):
res.append(matrix[top][i])
top += 1
从上到下
for i in range(top, bottom + 1):
res.append(matrix[i][right])
right -= 1
从右到左
if top <= bottom:
for i in range(right, left - 1, -1):
res.append(matrix[bottom][i])
bottom -= 1
从下到上
if left <= right:
for i in range(bottom, top - 1, -1):
res.append(matrix[i][left])
left += 1
return res
你可以使用这个函数来生成一个螺旋矩阵,例如:
```python
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(spiral_order(matrix)) 输出: [1, 2, 3, 6, 9, 8, 7, 4, 5]
这个函数会按照顺时针方向遍历矩阵,并将遍历到的元素添加到结果列表中。如果你需要生成一个不同大小的矩阵,只需调整`matrix`的大小即可。