题目
给定一个矩阵 A, 返回 A 的转置矩阵。
矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。
示例 1:
输入:[[1,2,3],[4,5,6],[7,8,9]]
输出:[[1,4,7],[2,5,8],[3,6,9]]
示例 2:
输入:[[1,2,3],[4,5,6]]
输出:[[1,4],[2,5],[3,6]]
解法1:
var transpose = function(A) {
let result = [];
for (let i = 0; i < A[0].length; i++) {
let temp = [];
for (let j = 0; j < A.length; j++) {
temp.push(A[j][i])
}
result.push(temp);
}
return result;
};
解法2:
转置数组实质上是角码的对调
var transpose2 = function(A) {
let B = [];
for(let i in A) {
for (let j in A[i]) {
if (!B[j]) {B[j] = [];}
B[j][i] = A[i][j];
}
}
return B
};
解法3
利用Array.from生成指定长度的空数组
var transpose3 = function(A) {
const rotateArr = Array.from({ length: A[0].length }, () => [])
A.forEach((v) => {
v.forEach((item, idx) => {
rotateArr[idx].push(item)
})
})
return rotateArr
};