题目
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。
示例 1:
输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]
示例 2:
输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出: [1,2,3,4,8,12,11,10,9,5,6,7]
答案
## @lc app=leetcode.cn id=54 lang=python3## [54] 螺旋矩阵## @lc code=startfrom typing import Listclass Solution:def spiralOrder(self, matrix: List[List[int]]) -> List[int]:res = []while matrix:# [[4,5,6],[7,8,9]] 弹出[1,2,3]res += matrix.pop(0)# [[4,5,6],[7,8,9]] ==> [(4, 7), (5, 8), (6, 9)]zipping = zip(*matrix)# [(4, 7), (5, 8), (6, 9)] ==> [[4, 7], [5, 8], [6, 9]]mapping = map(list, zipping)#[[4, 7], [5, 8], [6, 9]] ==> [[6, 9], [5, 8], [4, 7]]matrix = list(mapping)[::-1]return resSolution().spiralOrder([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# @lc code=end
Note

