Menu
CoddyTech

Transpose Matrix

PoczątkującyTablice i napisypython iconjava iconcpp iconc iconjs icon+10

Otrzymujesz macierz liczb całkowitych w postaci listy wierszy: matrix[i][j] to wartość w wierszu i, kolumnie j. Zwróć jej transpozycję, czyli macierz otrzymaną przez zamianę każdego wiersza w kolumnę. Wartość z wiersza i, kolumny j przenosi się do wiersza j, kolumny i. Macierz nie musi być kwadratowa: macierz m × n staje się macierzą n × m.

Funkcja

transpose(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
macierz m × n jako lista m wierszy zawierających n liczb całkowitych
Zwracainteger-2d-array
transpozycja macierzy n × m jako lista n wierszy zawierających po m liczb całkowitych

Ograniczenia

  • 1 ≤ m, n ≤ 1000, gdzie m = matrix.length i n = matrix[i].length
  • m × n ≤ 5000
  • Każdy wiersz ma tę samą długość n.
  • -1000 ≤ matrix[i][j] ≤ 1000

Przykłady

Wejście
matrix = [[1, 2, 3], [4, 5, 6]]
Wyjście
[[1, 4], [2, 5], [3, 6]]
Wyjaśnienie
Pierwszy wiersz [1, 2, 3] staje się pierwszą kolumną, a [4, 5, 6] drugą. Odczytując wynik wiersz po wierszu, otrzymujemy [1, 4], [2, 5], [3, 6]: macierz 2 × 3 zmieniła się w macierz 3 × 2.

lock icon+15 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Załóżmy, że macierz jest przechowywana jako jedna płaska tablica wartości m × n, wiersz po wierszu. Czy potrafisz transponować macierz niekwadratową w tej tablicy, bez użycia drugiej tablicy?

Zresetuj kod
def transpose(matrix):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Wejście

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

Oczekiwane

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