Menu
CoddyTech

Transpose Matrix

PrincipianteArrays y cadenaspython iconjava iconcpp iconc iconjs icon+10

Recibes una matriz de enteros como una lista de filas: matrix[i][j] es el valor de la fila i, columna j. Devuelve su transpuesta, la matriz que obtienes al convertir cada fila en una columna. El valor de la fila i, columna j pasa a la fila j, columna i. La matriz no tiene que ser cuadrada: una matriz de m × n se convierte en una de n × m.

Función

transpose(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
la matriz m × n, como una lista de m filas de n enteros
Devuelveinteger-2d-array
la transpuesta de n × m, como una lista de n filas de m enteros

Restricciones

  • 1 ≤ m, n ≤ 1000, donde m = matrix.length y n = matrix[i].length
  • m × n ≤ 5000
  • Cada fila tiene la misma longitud n.
  • -1000 ≤ matrix[i][j] ≤ 1000

Ejemplos

Entrada
matrix = [[1, 2, 3], [4, 5, 6]]
Salida
[[1, 4], [2, 5], [3, 6]]
Explicación
La primera fila [1, 2, 3] se convierte en la primera columna y [4, 5, 6] en la segunda. Al leer el resultado fila por fila, se obtiene [1, 4], [2, 5], [3, 6]: la matriz de 2 × 3 se convirtió en una de 3 × 2.

lock icon+15 pruebas ocultas al enviar

challenge icon

Para ir más allá

Supón que la matriz está almacenada como una única matriz plana de m × n valores, fila tras fila. ¿Puedes transponer una matriz no cuadrada dentro de esa matriz, sin una segunda matriz?

Restablecer código
def transpose(matrix):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Entrada

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

Esperado

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