Skip to content

Files

Latest commit

 

History

History

0867. Transpose Matrix

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

转置矩阵

题目描述

给定一个矩阵 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. 1 <= A.length <= 1000
  2. 1 <= A[0].length <= 1000

解题思路

思路

尺寸为 R x C 的矩阵 A 转置后会得到尺寸为 C x R 的矩阵 ans,对此有 ans[c][r] = A[r][c]

让我们初始化一个新的矩阵 ans 来表示答案。然后,我们将酌情复制矩阵的每个条目。

算法

var transpose = function (A) {
  if ( A.length === 1 && A[0].length === 1 ) return A;
  let tran_matrix = [];
  for ( let i = 0; i < A[0].length; ++i ) {
    tran_matrix[i] = [];
    for ( let j = 0; j < A.length; ++j ) {
      tran_matrix[i][j] = A[j][i];
    }
  }
  return tran_matrix;
};

复杂度分析

  • 时间复杂度:O(RC),其中 RC 是给定矩阵 A 的行数和列数。
  • 空间复杂度:O(RC),也就是答案所使用的空间。