1. 程式人生 > >Leetcode——旋轉影象——python3

Leetcode——旋轉影象——python3

# 旋轉影象
# 給定一個 n × n 的二維矩陣表示一個影象,將影象順時針旋轉 90 度。
# 你必須在原地旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要使用另一個矩陣來旋轉影象。

class Solution(object):
    def rotate(self, matrix):
        # 第一種方法
        length = len(matrix)   # n*n的矩陣,則返回 length = n

        # 這兩個迴圈套在一起,作了一個轉置的操作
        for i in range(length):   # 外層 i 表示迴圈行
            for j in range(i+1, length):  # 內層 j 表示迴圈列
                temp = matrix[i][j]      # 將值儲存在一箇中間變數裡
                matrix[i][j] = matrix[j][i]
                matrix[j][i] = temp


        # 進行列互換的操作:因為是按行儲存,而且是剛好全部顛倒,轉化成將每行倒序輸出賦給原來的值
        for i in range(len(matrix)):
            matrix[i] = matrix[i][::-1]    # [::-1]執行列表倒序操作

        return matrix

        # 第二種
        # matrix[:] = map(list, zip(*matrix[::-1]))