题解 | #螺旋矩阵# -- [Python3]
螺旋矩阵
http://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31
思路
此法来自大佬 能吃胖发量不多
- 每取出一行,对其进行顺时针旋转(转置)
- 对转置后的矩阵,进行按行反转,使其相当于逆时针旋转
- 重复 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