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
- Обход диапазона строки i
range(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