https://leetcode-cn.com/problems/spiral-matrix/
class Solution:
def __init__(self):
self.res = []
def spiralOrder(self, matrix):
"""
螺旋矩阵
给定一个包含 m x n 个元素的矩阵(m 行, n 列),
请按照顺时针螺旋顺序,返回矩阵中的所有元素。
输入:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
输出: [1,2,3,6,9,8,7,4,5]
"""
if not matrix:
return self.res
m, n = len(matrix), len(matrix[0])
self.res += matrix.pop(0)
if m < 2:
return self.res
elif m == 2:
self.res += matrix.pop()[::-1]
return self.res
for i in range(0, m - 2):
self.res.append(matrix[i].pop())
self.res += matrix.pop()[::-1]
if matrix[0]:
for i in range(m - 3, -1, -1):
self.res.append(matrix[i].pop(0))
if matrix[0]:
self.spiralOrder(matrix)
return self.res