给定一个矩阵 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
解析:
一开始把转置矩阵想成了方阵,在原矩阵A上进行对换,导致错误。后来定义了一个二维结果数组res,将原数组中的数字依次加入到结果数组中对应的位置,就完成了转置。res[j][i]=A[i][j];
代码:
vector<vector<int>> transpose(vector<vector<int>>& A)
{
int row = A.size();
int col = A[0].size();
vector<vector<int>>res(col, vector<int>(row));
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
res[j][i] = A[i][j];
}
}
return res;
}