Menu
CoddyTech

Transpose Matrix

Тебе дана матрица целых чисел в виде списка строк: matrix[i][j] — это значение в строке i, столбце j. Верни её транспонированный вариант: значение из строки i, столбца j перемещается в строку j, столбец i, так что каждая строка становится столбцом. Матрица не обязательно должна быть квадратной: матрица размера m × n становится матрицей размера n × m.

Функция

transpose(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
матрица m × n в виде списка из m строк по n целых чисел
Возвращаетinteger-2d-array
транспонированная матрица размером n × m в виде списка из n строк по m целых чисел

Ограничения

  • 1 ≤ m, n ≤ 1000, где m = matrix.length и n = matrix[i].length
  • m × n ≤ 5000
  • Каждая строка имеет одинаковую длину n.
  • -1000 ≤ matrix[i][j] ≤ 1000

Примеры

Ввод
matrix = [[1, 2, 3], [4, 5, 6]]
Вывод
[[1, 4], [2, 5], [3, 6]]
Пояснение
Строка [1, 2, 3] становится первым столбцом, а [4, 5, 6] — вторым. Если читать построчно, результат будет таким: [1, 4], [2, 5], [3, 6]: матрица 3 × 2.
challenge icon

Дополнительный вопрос

Предположим, матрица хранится в виде одного плоского массива из m × n значений, строка за строкой. Можешь транспонировать неквадратную матрицу внутри этого массива, не используя второй массив?

Сбросить код
def transpose(matrix):
    # Напишите код здесь

Тест #1

Тест #2

Аргумент

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

Ожидаемый вывод

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