leetcode48. Rotate Image(python)
阿新 • • 發佈:2018-11-01
思路:
先上下翻轉,再沿主對角線翻轉。
class Solution:
def rotate(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: void Do not return anything, modify matrix in-place instead.
"""
row = len(matrix)
col = len(matrix[0])
for i in range(int(row/2)) :
for j in range(col):
matrix[i][j],matrix[row-1-i][j] = matrix[row-1-i][j],matrix[i][j] #上下翻轉
for i in range(row):
for j in range(i):
matrix[i][j],matrix[j][i] = matrix[j][i],matrix[i][j] #主對角線翻轉
【總結:】
解法很巧妙,之前看的教程都是在從外圈到內圈逐層做的,還有設定中間變數或者中間陣列暫存值的,這種解法只是在互相交換值,連中間變數都不需要。而且上下翻轉和沿對角線翻轉時,都只需要遍歷一半即可。
最後注意,最後不需要return matrix
參考 https://blog.csdn.net/fuxuemingzhu/article/details/79451733