Алгоритм: перевернуть изображение 48. Повернуть изображение

48. Повернуть изображение

Вам дана двумерная матрица nxn, представляющая изображение, поверните изображение на 90 градусов (по часовой стрелке).
Вам нужно повернуть изображение на месте, что означает, что вы должны напрямую изменить входную 2D-матрицу. НЕ выделяйте другую 2D-матрицу и не выполняйте поворот.

Пример 1:
вставьте сюда описание изображения

Input: matrix = [[1,2,3],[4,5,6],[7,8,9]]
Output: [[7,4,1],[8,5,2],[9,6,3]]

Пример 2:
вставьте сюда описание изображения

Input: matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
Output: [[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

Ограничения:

  • п == matrix.length==matrix[i].length
  • 1 <= п <= 20
  • -1000 <= matrix[i][j]<= 1000

расстояние между чертежами n-1-jиi

  • Обход диапазона строки irange(n // 2 + n % 2)
  • Диапазон для итерации по столбцу j равенrange(n // 2)
    вставьте сюда описание изображения
class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        n = len(matrix[0])
        for i in range(n // 2 + n % 2):
            for j in range(n // 2):
                temp = matrix[n-1-j][i]
                matrix[n-1-j][i] = matrix[n-1-i][n-1-j]
                matrix[n-1-i][n-1-j] = matrix[j][n-1-i]
                matrix[j][n-1-i] = matrix[i][j]
                matrix[i][j] = temp

рекомендация

отblog.csdn.net/zgpeace/article/details/131692733
рекомендация