54. Spiral Matrix
- Spiral Matrix
Given an m x n matrix, return all elements of the matrix in spiral order.
思路:螺旋矩阵的“削水果”法
通过螺旋联想到“削水果”,即将矩阵“削头”(取第一行,并去掉第一行)后旋转90°(将剩下的矩阵转置),再继续“削头”,从而模拟螺旋。
class Solution:def spiralOrder(self, matrix: List[List[int]]) -> List[int]:n = []# 结果while matrix:# 判断matrix是否还有行,有就“削”,无就结束n += matrix.pop(0)# 将matrix第一行的所有元素给n,即“削头”matrix = list(zip(*matrix))[::-1]# 旋转90°,等待下次被“削”,#即matrix剩下的部分进行转置return n