美文网首页
leetcode-数组篇-转置数组(867)

leetcode-数组篇-转置数组(867)

作者: 青辰m | 来源:发表于2020-12-07 19:56 被阅读0次

    题目

    给定一个矩阵 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
    };
    

    相关文章

      网友评论

          本文标题:leetcode-数组篇-转置数组(867)

          本文链接:https://www.haomeiwen.com/subject/tngtgktx.html