转置矩阵
- 题号:—
- 来源:ACM 模式
- 难度:简单
- 标签:
矩阵数组 - 语言:JavaScript
- 解法:1 个
- 作者:lmliheng
- 最近更新:2026-09-27
JavaScript · O(n*m) 时间 · O(n*m) 空间 · 更新于 2026-09-27
新建矩阵,按下标对调填入
javascript
/**
* @difficulty easy
* @tags 矩阵,数组
* @time O(n*m)
* @space O(n*m)
* @note 新建矩阵,按下标对调填入
*/
import * as readline from 'readline'
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
/**
* @ACM模式
* 转置矩阵
*/
const lines = [];
rl.on('line', (line) => {
lines.push(line);
}).on('close', () => {
const [m, n] = lines[0].trim().split(' ').map(item => +item)
const matrix = Array.from({ length: m }, () => 0)
for (let i = 0; i < m; i++) {
matrix[i] = lines[i + 1].trim().split(' ').map(item => +item)
}
let res = transpose(matrix)
for (const row of res) {
console.log(row.join(' '));
}
})
/**
* @主函数
*/
function transpose(matrix) {
const m = matrix.length;
const n = matrix[0].length;
const res = new Array(n);
for (let i = 0; i < n; i++) {
res[i] = new Array(m);
for (let j = 0; j < m; j++) {
res[i][j] = matrix[j][i];
}
}
return res;
}在 GitHub 上查看题目所在目录:lmliheng/algorithm