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, a matriz obtida ao transformar cada linha em uma coluna. O valor na linha i, coluna j passa para a linha j, coluna i. 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 inteiros
Retornainteger-2d-array
a transposta de n × m, como uma lista de n linhas de m números inteiros

Restrições

  • 1 ≤ m, n ≤ 1000, em que m = matrix.length e n = matrix[i].length
  • m × n ≤ 5000
  • Todas as linhas têm 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 primeira linha [1, 2, 3] se torna a primeira coluna, e [4, 5, 6], a segunda. Lendo o resultado linha por linha, obtemos [1, 4], [2, 5], [3, 6]: a matriz 2 × 3 se transformou em uma matriz 3 × 2.

lock icon+15 testes ocultos ao enviar

challenge icon

Para ir além

Suponha que a matriz esteja armazenada como um único array linear de 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
Casos de teste

Caso 1

Caso 2

Entrada

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

Esperado

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