題目描述:給你兩個非負整數陣列 rowsum 和 colsum ,其中 rowsum[i] 是二維矩陣中第 i 行元素的和, colsum[j] 是第 j 列元素的和。換言之你不知道矩陣裡的每個元素,但是你知道每一行和每一列的和。請找到大小為 rowsum.length x colsum.length 的任意 非負整數 矩陣,且該矩陣滿足 rowsum 和 colsum 的要求。請你返回任意乙個滿足題目要求的二維矩陣,題目保證存在 至少乙個 可行矩陣。
解題思路:先用零初始化要返回的矩陣,然後從左到右從上到下依次填值,對於[i][j]
處的值,我們填上min(rowsum[i], colsum[j])
,然後將對應位置的行和和列和前去我們填上的值,這樣不斷更新行和和列和,因為題目保證至少存在乙個可行矩陣,那麼最終行和和列和都會變為零。**如下:
class
solution
:def
restorematrix
(self, rowsum: list[
int]
, colsum: list[
int])-
> list[list[
int]]:
rows =
len(rowsum)
cols =
len(colsum)
res =[[
0]*cols for _ in
range
(rows)
]for i in
range
(rows)
:if rowsum[i]==0
:continue
for j in
range
(cols)
:if colsum[j]==0
:continue
res[i]
[j]=
min(rowsum[i]
, colsum[j]
) rowsum[i]
-= res[i]
[j] colsum[j]
-= res[i]
[j]return res
1605 給定行和列的和求可行矩陣
題目描述 給你兩個非負整數陣列 rowsum 和 colsum 其中 rowsum i 是二維矩陣中第 i 行元素的和,colsum j 是第 j 列元素的和。換言之你不知道矩陣裡的每個元素,但是你知道每一行和每一列的和。請找到大小為 rowsum.length x colsum.length 的任...
leetcode1605 給定行和列的和求可行矩陣
給你兩個非負整數陣列 rowsum 和 colsum 其中 rowsum i 是二維矩陣中第 i 行元素的和,colsum j 是第 j 列元素的和。換言之你不知道矩陣裡的每個元素,但是你知道每一行和每一列的和。請找到大小為 rowsum.length x colsum.length 的任意 非負整...
5518 給定行和列的和求可行矩陣
給你兩個非負整數陣列 rowsum 和 colsum 其中 rowsum i 是二維矩陣中第 i 行元素的和,colsum j 是第 j 列元素的和。換言之你不知道矩陣裡的每個元素,但是你知道每一行和每一列的和。請找到大小為 rowsum.length x colsum.length 的任意 非負整...