Menu
CoddyTech

Transpose Matrix

InicianteArrays e stringspython iconjava iconcpp iconc iconjs icon+10

Você recebe uma matriz de inteiros como uma lista de linhas: matrix[i][j] é o valor na linha i, coluna j. Retorne sua transposta: o valor na linha i, coluna j passa para a linha j, coluna i, de modo que cada linha se torne uma coluna. A matriz não precisa ser quadrada: uma matriz m × n se torna uma matriz n × m.

Função

transpose(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
a matriz m × n, como uma lista de m linhas de n números inteiros
Retornainteger-2d-array
a transposta n × m, como uma lista de n linhas de m inteiros

Restrições

  • 1 ≤ m, n ≤ 1000, em que m = matrix.length e n = matrix[i].length
  • m × n ≤ 5000
  • Cada linha tem o mesmo comprimento n.
  • -1000 ≤ matrix[i][j] ≤ 1000

Exemplos

Entrada
matrix = [[1, 2, 3], [4, 5, 6]]
Saída
[[1, 4], [2, 5], [3, 6]]
Explicação
A linha [1, 2, 3] se torna a primeira coluna, e [4, 5, 6], a segunda. Lendo linha por linha, o resultado é [1, 4], [2, 5], [3, 6]: uma matriz 3 × 2.
challenge icon

Para ir além

Suponha que a matriz esteja armazenada em um único array linear com m × n valores, linha após linha. Você consegue transpor uma matriz não quadrada dentro desse array, sem usar um segundo array?

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

Teste #1

Teste #2

Argumento

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

Saída Esperada

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