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

最后更新于