1605 給定行和列的和求可行矩陣

2021-10-10 18:26:08 字數 1104 閱讀 6450

題目描述:給你兩個非負整數陣列 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 的任意 非負整...