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: el valor de la fila i, columna j pasa a la fila j, columna i, así que cada fila se convierte en una columna. La matriz no tiene que ser cuadrada: una matriz 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 fila [1, 2, 3] se convierte en la primera columna y [4, 5, 6] en la segunda. Leído fila por fila, el resultado es [1, 4], [2, 5], [3, 6]: una matriz de 3 × 2.
challenge icon

Para ir más allá

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

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

Prueba #1

Prueba #2

Argumento

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

Salida Esperada

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