像素翻轉

題目描述
有一副由NxN矩陣表示的圖像,這裏每一個像素用一個int表示,請編寫一個算法,在不佔用額外內存空間的狀況下(即不使用緩存矩陣),將圖像順時針旋轉90度。算法

給定一個NxN的矩陣,和矩陣的階數N,請返回旋轉後的NxN矩陣,保證N小於等於500,圖像元素小於等於256。緩存

測試樣例:
[[1,2,3],[4,5,6],[7,8,9]],3
返回:[[7,4,1],[8,5,2],[9,6,3]]測試

# -*- coding:utf-8 -*-
class Transform:
    def transformImage(self, mat, n):
        for i in range(n//2): # 上下翻轉
            for j in range(n):
                mat[i][j],mat[n-i-1][j] = mat[n-i-1][j],mat[i][j]
        for i in range(n): #沿主對角線翻轉
            for j in range(i+1,n):
                mat[i][j],mat[j][i] = mat[j][i],mat[i][j]
        return mat
相關文章
相關標籤/搜索