给定一个矩阵 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 <= A.length <= 1000
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 }