首页 > 其他 > 详细

54. 螺旋矩阵

时间:2020-01-28 13:43:02      阅读:69      评论:0      收藏:0      [点我收藏+]

本题需要螺旋打印一个二维数组,即每打印一层旋转一次。

所以本题需要用到旋转矩阵这一操作。 

转载自 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
 
 

 

54. 螺旋矩阵

原文:https://www.cnblogs.com/ChevisZhang/p/12237873.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!