0%

leetcode每日一题2020.2.25

867. 转置矩阵

一、题目

给你一个二维整数数组 matrix, 返回 matrix转置矩阵

矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。

20210225

示例1:

1
2
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[[1,4,7],[2,5,8],[3,6,9]]

示例2:

1
2
输入:matrix = [[1,2,3],[4,5,6]]
输出:[[1,4],[2,5],[3,6]]

提示:

  • $m = matrix.length$
  • $n = matrix[i].length$
  • $1 \le m, n \le 1000$
  • $1 \le m * n \le 10^{5}$
  • $-10^{9} ≤ matrix[i][j] ≤ 10^{9}$

二、题解

1
横纵坐标对换位置即可,很简单。
  • 时间复杂度:$O(m * n)$,其中 $m$ 为矩阵的行数,$n$ 为矩阵的列数。
  • 空间复杂度:$O(1)$。除了返回值以外,额外使用的空间为常数。
1
2
3
4
5
6
7
8
9
10
11
var transpose = function (matrix) {
const row = matrix.length;
const col = matrix[0].length;
const res = Array(col).fill(0).map(e => Array(row).fill(0));
for (let i = 0; i < row; i++) {
for (let j = 0; j < col; j++) {
res[j][i] = matrix[i][j]
}
}
return res
};
万一真有土豪呢