力扣第867题

    给定一个矩阵 A, 返回 A 的转置矩阵。
    矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。

    示例
    输入:[[1,2,3],[4,5,6],[7,8,9]] 输出:[[1,4,7],[2,5,8],[3,6,9]]

    最简单解法

    通过遍历二重遍历原数组来进行数据对新数组的插入,返回新数组
    执行用时:100 ms, 在所有 JavaScript 提交中击败了52.36%的用户
    内存消耗:40.5 MB, 在所有 JavaScript 提交中击败了30.80%的用户
    时间复杂度为O(n)优化空间非常大

    1. var transpose = function (A) {
    2. let arr = []
    3. // 最简单方法
    4. for (let i = 0; i < A.length; i++) {
    5. for (let j = 0; j < A[i].length; j++) {
    6. i===0&&arr.push([])
    7. arr[j][i] = A[i][j];
    8. console.log(arr);
    9. }
    10. }
    11. return arr
    12. };


    一行解法**
    因为.map()返回的是一个数组,首先对A[0]进行遍历,遍历A[0]中每一项数组长度额次数,然后对A进行遍历,返回其中下标为index的每一项,再通过A[0].map()的返回值返回为新的数组

    1. var transpose = function (A) {
    2. return A[0].map((value, index) => { return A.map(row =>row[index]) })
    3. };