Menu
CoddyTech

Transpose Matrix

PrincipianteArray e stringhepython iconjava iconcpp iconc iconjs icon+10

Ricevi una matrice di numeri interi sotto forma di elenco di righe: matrix[i][j] è il valore nella riga i, colonna j. Restituisci la sua trasposta: il valore nella riga i, colonna j si sposta nella riga j, colonna i, così ogni riga diventa una colonna. 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 lista 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 riga [1, 2, 3] diventa la prima colonna e [4, 5, 6] la seconda. Letto riga per riga, il risultato è [1, 4], [2, 5], [3, 6]: una matrice 3 × 2.
challenge icon

Per approfondire

Supponiamo che la matrice sia memorizzata come un unico array piatto di m × n valori, riga dopo riga. 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

Test #1

Test #2

Argomento

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

Output atteso

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