Menu
CoddyTech

Transpose Matrix

PrincipianteArray e stringhepython iconjava iconcpp iconc iconjs icon+10

Ricevi una matrice di numeri interi come elenco di righe: matrix[i][j] è il valore nella riga i, colonna j. Restituisci la sua trasposta, la matrice che ottieni trasformando ogni riga in una colonna. Il valore nella riga i, colonna j si sposta nella riga j, colonna i. La matrice non deve essere quadrata: una matrice m × n diventa una matrice n × m.

Funzione

transpose(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
la matrice m × n, come elenco di m righe di n numeri interi
Restituisceinteger-2d-array
la trasposta n × m, come elenco di n righe di m interi

Vincoli

  • 1 ≤ m, n ≤ 1000, dove m = matrix.length e n = matrix[i].length
  • m × n ≤ 5000
  • Ogni riga ha la stessa lunghezza n.
  • -1000 ≤ matrix[i][j] ≤ 1000

Esempi

Input
matrix = [[1, 2, 3], [4, 5, 6]]
Output
[[1, 4], [2, 5], [3, 6]]
Spiegazione
La prima riga [1, 2, 3] diventa la prima colonna e [4, 5, 6] la seconda. Leggendo il risultato riga per riga si ottiene [1, 4], [2, 5], [3, 6]: la matrice 2 × 3 è diventata una matrice 3 × 2.

lock icon+15 test nascosti all’invio

challenge icon

Per approfondire

Supponiamo che la matrice sia memorizzata come un unico array lineare di m × n valori, una riga dopo l’altra. Riesci a trasporre una matrice non quadrata all’interno di quell’array, senza usare un secondo array?

Ripristina il codice
def transpose(matrix):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Input

matrix = [[1, 2, 3], [4, 5, 6]]

Atteso

[[1, 4], [2, 5], [3, 6]]