LeetCode 867. 转置矩阵
题目描述
思路分析
解法一:直接转置(推荐)
核心思路:
- 新矩阵的大小为
n x m,其中原矩阵为m x n。- 满足
res[j][i] = matrix[i][j]。
复杂度分析:
- 时间复杂度:O(mn),其中 m、n 表示矩阵行列。
- 空间复杂度:O(mn),需要新矩阵存储。
class Solution {
public int[][] transpose(int[][] matrix) {
int m = matrix.length;
int n = matrix[0].length;
int[][] res = new int[n][m];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
res[j][i] = matrix[i][j];
}
}
return res;
}
}
func transpose(matrix [][]int) [][]int {
m := len(matrix)
n := len(matrix[0])
res := make([][]int, n)
for i := 0; i < n; i++ {
res[i] = make([]int, m)
}
for i := 0; i < m; i++ {
for j := 0; j < n; j++ {
res[j][i] = matrix[i][j]
}
}
return res
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 48. 旋转图像 | 中等 | 矩阵变换 |
| 73. 矩阵置零 | 中等 | 矩阵 |
| 54. 螺旋矩阵 | 中等 | 矩阵遍历 |
| 59. 螺旋矩阵 II | 中等 | 矩阵模拟 |
| 74. 搜索二维矩阵 | 中等 | 矩阵 |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!