力扣第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)优化空间非常大
var transpose = function (A) {let arr = []// 最简单方法for (let i = 0; i < A.length; i++) {for (let j = 0; j < A[i].length; j++) {i===0&&arr.push([])arr[j][i] = A[i][j];console.log(arr);}}return arr};
一行解法**
因为.map()返回的是一个数组,首先对A[0]进行遍历,遍历A[0]中每一项数组长度额次数,然后对A进行遍历,返回其中下标为index的每一项,再通过A[0].map()的返回值返回为新的数组
var transpose = function (A) {return A[0].map((value, index) => { return A.map(row =>row[index]) })};
