每日编程中遇到任何疑问、意见、建议请公众号留言或直接撩Q474356284(备注每日编程)
今日问题:
给定一个矩阵 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的行与列交换得到的新矩阵就是转置矩阵,用AT表示。
即:核心:将原矩阵A的元素A[i][j]变成新矩阵的res[j][i];
假如原矩阵A的行数为M,列数为N;
则我们只需创建一个矩阵res行数为N,列数为M;
然后遍历A矩阵。将A[i][j]的值赋给res[j][i]即可。
C++代码:
C代码:
Java代码:
明日题目预告:
Excel表列序号
给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1:
输入: "A"
输出: 1
示例 2:
输入: "AB"
输出: 28
示例 3:
输入: "ZY"
输出: 701