Menu
CoddyTech

Rotate Image

Você recebe uma grade n × n de números inteiros, uma lista por linha. Gire-a um quarto de volta no sentido horário e retorne-a. A linha superior se torna a coluna mais à direita, a segunda linha se torna a coluna à esquerda dela, e assim por diante: o valor em (i, j) vai para (j, n-1-i). Você pode alterar a grade no próprio lugar; retorne-a.

Função

rotateImage(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
a grade quadrada, uma lista interna por linha
Retornainteger-2d-array
a matriz girou 90 graus no sentido horário

Restrições

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

Exemplos

Entrada
matrix = [[3, 7, 1], [9, 5, 2], [4, 8, 6]]
Saída
[[4, 9, 3], [8, 5, 7], [6, 2, 1]]
Explicação
A primeira linha, 3 7 1, torna-se a última coluna, lida de cima para baixo. A primeira coluna, 3 9 4, lida de baixo para cima, torna-se a primeira linha [4, 9, 3]. O valor central 5 permanece no lugar.
challenge icon

Para ir além

Quais duas etapas in-place giram a matriz em 180 graus, e você consegue fazer isso em uma única passagem de trocas?

Redefinir código
def rotateImage(matrix):
    # Escreva o código aqui

Teste #1

Teste #2

Argumento

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

Saída Esperada

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