[算法导论] 48.旋转图像(原地顺时针旋转90度)

0.题目

[算法导论] 48.旋转图像(原地顺时针旋转90度)_第1张图片

1. 两次翻转替代旋转 

class Solution:
    def rotate(self, matrix]):
        n = len(matrix)
        # 水平翻转
        for i in range(n // 2):
            for j in range(n):
                matrix[i][j], matrix[n - i - 1][j] = matrix[n - i - 1][j], matrix[i][j]
        # 主对角线翻转
        for i in range(n):
            for j in range(i):
                matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
             
class Solution(object):
    # (因为矩阵是正方形,所以 右对角线翻转,再水平翻转)
    def rotate(self, matrix):
        n = len(matrix)
        # 沿右对角线 翻转  0,0 2,2;1,0 2,1 (里层和/外层和为n-1)   
     

你可能感兴趣的:(算法导论,算法)