1. 程式人生 > >劍指Offer19:順時針列印矩陣

劍指Offer19:順時針列印矩陣

思路:

可以模擬魔方逆時針旋轉的方法,一直做取出第一行的操作

例如 

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]]

膜拜大佬們的思路,好好學習中。