给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。
#way1:利用di,dj控制方向
class Solution:
def spiralOrder(self, matrix):
res, i, j, di, dj = [], 0, 0, 0, 1
if matrix:
for _ in range(len(matrix) * len(matrix[0])):
res.append(matrix[i][j])
matrix[i][j] = None
next_stop = matrix[(i + di) % len(matrix)][(j + dj) % len(matrix[0])]
if next_stop is None:
di, dj = dj, -di
i += di
j += dj
return res
#way2:
class Solution:
def spiralOrder(self, matrix):
res = []
while matrix:
res += matrix[0]
matrix = list(zip(*matrix[1:]))[::-1]
return res
给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。
最新推荐文章于 2023-11-19 14:29:12 发布