【发布时间】:2019-12-20 03:22:07
【问题描述】:
我正在尝试使用递归转置矩阵。现在,我知道在正常情况下这不是一个好主意,嵌套循环/嵌套映射或类似方法更好,但出于教育目的,我需要学习这一点。
为了表明我做了功课,这里是嵌套循环方法:
const arrMatrix = [
[3, 6, 7, 34],
[6, 3, 5, 2],
[2, 6, 8, 3]
];
const transposedMatrix = []
for (let i = 0; i < arrMatrix[0].length; i++) {
const tempCol = [];
for (let j = 0; j < arrMatrix.length; j++) {
tempCol.push(arrMatrix[j][i]);
}
transposedMatrix.push(tempCol);
}
console.log(transposedMatrix);
这是使用嵌套maps 的另一种方法:
const arrMatrix = [
[3, 6, 7, 34],
[6, 3, 5, 2],
[2, 6, 8, 3]
];
const transposedMatrix = arrMatrix[0].map((_, i) =>
arrMatrix.map((_, j) => arrMatrix[j][i])
);
console.log(transposedMatrix);
这里有 some resources 我经历过但没能想出使用它们的解决方案。
如果可能的话,除了算法/代码,请给我一些解释和资源,让我了解更多。
【问题讨论】:
标签: javascript algorithm recursion functional-programming