领扣(LeetCode)转置矩阵 个人题解

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

最简单最暴力的做法就是花O(1)的额外空间,来把矩阵转置过去。i,j索引调换就好了。

其他办法没有看到相关题解,这是数学的范畴,暂不深究。

代码如下:

 1 class Solution {
 2     public int[][] transpose(int[][] A) {
 3         int[][]ans =new int[A[0].length][A.length];
 4         for(int i=0;i<A.length;i++)
 5         {
 6             for(int j=0;j<A[0].length;j++)
 7             {
 8                 ans[j][i]=A[i][j];
 9             }
10         }
11         return ans;
12     }
13 }
原文地址:https://www.cnblogs.com/axiangcoding/p/10034807.html