@PenguinVasily

Как повернуть квадратную матрицу?

Выполняю задачу на LeetCode - 48. Rotate Image. Суть задачи заключается в том, чтобы повернуть квадратную матрицу на 90 градусов. Я написал алгоритм, который это делает:

class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:        
        size = len(matrix)
        
        rotated_matrix = []
        for i in range(size):
            column = []
            for j in range(size):
                column.append(matrix[size - j - 1][i])
            rotated_matrix.append(column)
                
        matrix = rotated_matrix

Но проблема в том, что, по условию задачи, необходимо изменить входную матрицу. Когда я пытаюсь заменить её на повернутую матрицу, то ничего не выходит - тесты показывают значения входной матрицы. Как это исправить?
  • Вопрос задан
  • 278 просмотров
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F
class Solution:
  def rotate(self, matrix: List[List[int]]) -> None:
    length = len(matrix)
    for i in range(0, length // 2):
      for j in range(i, length - i - 1):
        matrix[i][j], \
        matrix[j][length - i - 1], \
        matrix[length - i - 1][length - j - 1], \
        matrix[length - j - 1][i] \
        = \
        matrix[length - j - 1][i], \
        matrix[i][j], \
        matrix[j][length - i - 1], \
        matrix[length - i - 1][length - j - 1]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы