1605 理解 m+n 比 mn 快很多
'''class Solution:
def restoreMatrix(self, rowSum: List[int], colSum: List[int]) -> List[List[int]]:
row,col = len(rowSum),len(colSum)
res = [[0]*col for _ in range(row)]
for i in range(row):
for j in range(col):
a=res[i][j] = rowSum[i] if rowSum[i] <= colSum[j] else colSum[j]
rowSum[i] -= a
colSum[j] -= a
return res
#作者:int_64
# 这是最快的,,,,m+n
class Solution:
def restoreMatrix(self, rowSum: List[int], colSum: List[int]) -> List[List[int]]:
m, n = len(rowSum), len(colSum)
res = [[0] * n for _ in range(m)]
i, j = 0, 0
while i < m and j < n:
if rowSum[i] <= colSum[j]:
res[i][j] = rowSum[i]
colSum[j] -= rowSum[i]
i += 1
else:
res[i][j] = colSum[j]
rowSum[i] -= colSum[j]
j += 1
return res
'''
class Solution:
def restoreMatrix(self, rowSum: List[int], colSum: List[int]) -> List[List[int]]:
m = len(rowSum)
n = len(colSum)
result = [[0] * n for _ in range(m)]
for i in range(m):
if rowSum[i] == 0:
continue
for j in range(n):
if colSum[j] == 0:
continue
x = min(rowSum[i],colSum[j])
result[i][j] = x
rowSum[i] -= x
colSum[j] -= x
return result
网友评论