54. 螺旋矩阵
https://leetcode-cn.com/problems/spiral-matrix/
解法一:
从集智王司图那看的(https://jizhi.im/blog/post/python-quiz-002)。 非常巧妙,每次先输出矩阵的第一行,然后将剩下的矩阵左旋90度。重复以上步骤。画图比较容易理解。
class Solution:
def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
res = []
#当矩阵非空
while matrix:
res.extend(matrix.pop(0)) #输出矩阵第一行
tmp_arr = []
for i in zip(*matrix): #注意zip函数传入的是一个解包,直观上就是从左到右取矩阵的每一列
tmp_arr.append(list(i))
#逆序,即得到左旋90度
matrix = tmp_arr[::-1]
return res
最后更新于