题目描述
自己解法
按照转置矩阵的定义进行数据填充:
class Solution:
def transpose(self, A: List[List[int]]) -> List[List[int]]:
H,W = len(A),len(A[0])
ans = []
for i in range(W):
ans.append([])
for i in range(W):
for j in range(H):
ans[i].append(A[j][i])
return ans
时间复杂度:
O
(
m
n
)
O(mn)
O(mn),
m
,
n
m,n
m,n分别为矩阵高、宽;空间复杂度:
O
(
m
n
)
O(mn)
O(mn)。
官方解答
具体参考:官方解答。
class Solution(object):
def transpose(self, A):
R, C = len(A), len(A[0])
ans = [[None] * R for _ in xrange(C)]
for r, row in enumerate(A):
for c, val in enumerate(row):
ans[c][r] = val
return ans
#Alternative Solution:
#return zip(*A)
或者:
return [[x[i] for x in A] for i in range(len(A[0]))]