Menu
CoddyTech

Rotate Image

Otrzymujesz siatkę n × n liczb całkowitych, po jednej liście na każdy wiersz. Obróć ją o ćwierć obrotu zgodnie z ruchem wskazówek zegara i zwróć. Górny wiersz staje się skrajną prawą kolumną, drugi wiersz kolumną po jego lewej stronie i tak dalej: wartość w (i, j) trafia do (j, n-1-i). Możesz zmienić siatkę w miejscu; zwróć ją.

Funkcja

rotateImage(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
kwadratowa siatka, jedna lista wewnętrzna na każdy wiersz
Zwracainteger-2d-array
macierz obrócona o 90 stopni w prawo

Ograniczenia

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

Przykłady

Wejście
matrix = [[3, 7, 1], [9, 5, 2], [4, 8, 6]]
Wyjście
[[4, 9, 3], [8, 5, 7], [6, 2, 1]]
Wyjaśnienie
Pierwszy wiersz, 3 7 1, staje się ostatnią kolumną czytaną od góry do dołu. Pierwsza kolumna, 3 9 4, czytana od dołu do góry, staje się pierwszym wierszem [4, 9, 3]. Środkowa wartość 5 pozostaje na swoim miejscu.
challenge icon

Pytanie dodatkowe

Które dwa kroki wykonywane w miejscu obracają macierz o 180 stopni i czy da się to zrobić w jednym przebiegu zamian?

Zresetuj kod
def rotateImage(matrix):
    # Wpisz kod tutaj

Test #1

Test #2

Argument

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

Oczekiwany wynik

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