Skip to content

Latest commit

 

History

History
62 lines (55 loc) · 1.33 KB

File metadata and controls

62 lines (55 loc) · 1.33 KB
/*
给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。
矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。
 */
/*
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[[1,4,7],[2,5,8],[3,6,9]]
 */
/**
 * @param {number[][]} matrix
 * @return {number[][]}
 */
var transpose = function (matrix) {
  if (!matrix.length) return [];
  const rowNum = matrix.length;
  const colNum = matrix[0].length;

  //初始化二维数组
  let re = new Array(colNum).fill(null).map(()=>new Array(rowNum))

  // let re2 = []
  // for (let i = 0; i < colNum; i++) {
  //   re2.push([]);
  // }

  for (let i = 0; i < rowNum; i++) {
    for (let j = 0; j < colNum; j++) {
      re[j][i] = matrix[i][j];
    }
  }
  return re;
};

var transpose2 = function(matrix) {
  const m = matrix.length, n = matrix[0].length;
  const transposed = new Array(n).fill(0).map(() => new Array(m).fill(0));
  for (let i = 0; i < m; i++) {
    for (let j = 0; j < n; j++) {
      transposed[j][i] = matrix[i][j];
    }
  }
  return transposed;
};


console.log(
  transpose([
    [-51, 36, -31, 23],
    [3, 12, -31, 65],
    [-20, 2, -42, -62],
    [0, -49, 75, 77],
    [-52, 46, 45, 37],
    [-98, 17, 14, 78],
    [50, 88, -15, -31],
    [84, -59, -96, 23],
    [42, 1, 48, 81],
    [-92, 95, -71, 37],
  ])
);