思路:
可以模拟魔方逆时针旋转的方法,一直做取出第一行的操作
例如
1 2 3
4 5 6
7 8 9
输出并删除第一行后,再进行一次逆时针旋转,就变成:
6 9
5 8
4 7
继续重复上述操作即可。
# -*- coding:utf-8 -*-
class Solution:
# matrix类型为二维列表,需要返回列表
def printMatrix(self, matrix):
# write code here
result = []
while(matrix):
result+=matrix.pop(0) #result=[1 2 3 4]
if not matrix or not matrix[0]:
break
matrix = self.turn(matrix)
return result
def turn(self,matrix):
num_r = len(matrix) #行数
num_c = len(matrix[0]) #列数
newmat = []
for i in range(num_c):
newmat2 = []
for j in range(num_r):
newmat2.append(matrix[j][i])
newmat.append(newmat2) #将矩阵newmat2插入newmat newmat=[[5,9,13],[6,10,14],[7,11,15],[8,12,16]]
newmat.reverse()
return newmat #newmat=[[8,12,16],[7,11,15],[6,10,14],[5,9,13]]
膜拜大佬们的思路,好好学习中。