题解 | #螺旋矩阵# -- [Python3]

螺旋矩阵

http://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31

思路

此法来自大佬 能吃胖发量不多

  1. 每取出一行,对其进行顺时针旋转(转置)
  2. 对转置后的矩阵,进行按行反转,使其相当于逆时针旋转
  3. 重复 1 2 步骤,直至矩阵为空
    class Solution:
     def spiralOrder(self , matrix ):
         res = []
         # 第一轮循环取第一行
         # 第二轮循环取最后一列
         # 第三轮循环取最后一行
         # 第四轮循环取第一列
         while matrix:
             res += matrix[0]
             # 取除第一行外剩下的所有行,并按照列,组成元组,此时的每一行即为以前的每一列,相当于转置操作
             zipObj = zip(*matrix[1:])
             # 对元组数据list化 方便进行切片操作
             zipList = list(zipObj)
             # [::-1] 相当于反转操作,按照行首,行尾调换顺序
             matrix = zipList[::-1]
         return res
全部评论

相关推荐

05-16 11:16
已编辑
东华理工大学 Java
点赞 评论 收藏
分享
03-31 17:40
已编辑
门头沟学院 算法工程师
程序员牛肉:小牛肉来也! 也不要焦虑啦,你第一志愿还没有结束,只是回到人才库(泡大池子等待各个部门挑选)而已。仅仅代表你不符合这个组的用人标准,并不能够说明你在本次暑期实习中没机会加入美团了。 还是平复好心态,不断的复盘,等待下一次面试就好了。
点赞 评论 收藏
分享
评论
9
3
分享

创作者周榜

更多
牛客网
牛客企业服务