Skip to content

转置矩阵 ​

  • 题号:—
  • 来源: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;
}

源码:ts/leetcode/ACM模式/转置矩阵.js


在 GitHub 上查看题目所在目录:lmliheng/algorithm