題目
給定一個矩陣 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
};