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]]