1、描述
867给定一个矩阵 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]]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/transpose-matrix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2、关键字
矩阵、行、列、
3、思路
vector中构建矩阵,先一行一行的整,再用一行复制其他行,就构建成二维的了,初始化一行,再用那一行 初始化整个第二维
4、notes
1、vector也可以**A[i][j]**
2、赋值时,i,j,别A,B写反了,不然越界
5、复杂度
时间:O(n * m)
空间:O(n * m)
6、code
class Solution {
public:
vector<vector<int>> transpose(vector<vector<int>>& A) {
int n=A.size(); // 行数
int m=A[0].size(); // 列数
vector<int>v(n,0); // B矩阵的一行
vector<vector<int>>B(m,v); // 用行构建 转置容器B
for(int i=0;i<n;i++) // 拷贝
{
for(int j=0;j<m;j++)
{
B[j][i]=A[i][j]; // 注意此处,i行j列,是A矩阵,如果写成B[i][j]就会越界了
}
}
return B;
}
};