Menu
CoddyTech

Rotate Image

Вам дана сетка целых чисел размером n × n, представленная списком для каждой строки. Поверните её на четверть оборота по часовой стрелке и верните. Верхняя строка станет самым правым столбцом, вторая строка — столбцом слева от него, и так далее: значение в позиции (i, j) окажется в позиции (j, n-1-i). Вы можете изменить сетку на месте; верните её.

Функция

rotateImage(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
квадратная сетка, по одному внутреннему списку на строку
Возвращаетinteger-2d-array
матрица повернулась на 90 градусов по часовой стрелке

Ограничения

  • n == matrix.length == matrix[i].length
  • 1 ≤ n ≤ 70
  • -1000 ≤ matrix[i][j] ≤ 1000

Примеры

Ввод
matrix = [[3, 7, 1], [9, 5, 2], [4, 8, 6]]
Вывод
[[4, 9, 3], [8, 5, 7], [6, 2, 1]]
Пояснение
Первая строка, 3 7 1, становится последним столбцом, читаемым сверху вниз. Первый столбец, 3 9 4, читаемый снизу вверх, становится первой строкой [4, 9, 3]. Центральное значение 5 остаётся на месте.
challenge icon

Дополнительный вопрос

Какие два шага на месте поворачивают матрицу на 180 градусов и можно ли выполнить это за один проход обменов?

Сбросить код
def rotateImage(matrix):
    # Напишите код здесь

Тест #1

Тест #2

Аргумент

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

Ожидаемый вывод

[[4, 9, 3], [8, 5, 7], [6, 2, 1]]