劍指Offer19:順時針列印矩陣
阿新 • • 發佈:2018-12-07
思路:
可以模擬魔方逆時針旋轉的方法,一直做取出第一行的操作
例如
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]]
膜拜大佬們的思路,好好學習中。