本题需要螺旋打印一个二维数组,即每打印一层旋转一次。
所以本题需要用到旋转矩阵这一操作。
转载自 https://blog.csdn.net/ezio23/article/details/81414092
zip可以将输入的两个一维列表,逆时针转置成一个二维数组 zip(a,b)
zip(*zipped) 可以将一个二维数组,逆时针转置成二维数组
所以在本题中需要使用到 顺时针转置还需要逆序:
class Solution:
def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
res = []
while matrix:
res += matrix.pop(0)
matrix = list(map(list,zip(*matrix)))[::-1]
return res
在加粗的一行中 外层的List用来将Object转化成list,内层的List用来将内层的tuple 转化成List,从而可以pop