48. 旋转图像(中等)-矩阵

2023-05-23  本文已影响0人  MatrixZ

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。

分析

class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        def rotate_layer(matrix, start, end):

            for i in range(end - start):
                top = matrix[start][start+i]

                # 第一列移动到第一行
                matrix[start][start+i] = matrix[end - i][start]

                # 最后一行移动到第一列
                matrix[end - i][start] = matrix[end][end - i]

                # 最后一列移动到最后一行
                matrix[end][end - i] = matrix[start + i][end]

                # 第一行移动到最后一列
                matrix[start+i][end] = top
        
        n = len(matrix)

        for i in range(n//2):

            rotate_layer(matrix, i, n - i - 1)



上一篇 下一篇

猜你喜欢

热点阅读