题目描述:
给定一个矩阵 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:
写法1:
class Solution:
def transpose(self, A: List[List[int]]) -> List[List[int]]:
line, column = len(A), len(A[0])
ans = [[None] * line for _ in range(column)]
for i, row in enumerate(A):
for j, val in enumerate(row):
ans[j][i] = val
return ans
写法2:
class Solution:
def transpose(self, A: List[List[int]]) -> List[List[int]]:
line, column = len(A), len(A[0])
ans = [[None] * line for _ in range(column)]
for i in range(line):
for j in range(column):
ans[j][i] = A[i][j]
return ans
代码2:Java
class Solution {
public int[][] transpose(int[][] A) {
int R = A.length, C = A[0].length;
int[][] ans = new int[C][R];
for (int r = 0; r < R; ++r)
for (int c = 0; c < C; ++c) {
ans[c][r] = A[r][c];
}
return ans;
}
}
题目来源: