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

2021-10-10 10:30:46 字數 1414 閱讀 9539

給你兩個非負整數陣列 rowsum 和 colsum ,其中 rowsum[i] 是二維矩陣中第 i 行元素的和, colsum[j] 是第 j 列元素的和。換言之你不知道矩陣裡的每個元素,但是你知道每一行和每一列的和。

請找到大小為 rowsum.length x colsum.length 的任意 非負整數 矩陣,且該矩陣滿足 rowsum 和 colsum 的要求。

請你返回任意乙個滿足題目要求的二維矩陣,題目保證存在 至少乙個 可行矩陣。

輸入:rowsum =

[3,8], colsum =

[4,7]

輸出:[

[3,0],

[1,7]

]解釋:

第 0 行:3 + 0 = 0 == rowsum[0]

第 1 行:1 + 7 = 8 == rowsum[1]

第 0 列:3 + 1 = 4 == colsum[0]

第 1 列:0 + 7 = 7 == colsum[1]

行和列的和都滿足題目要求,且所有矩陣元素都是非負的。

另乙個可行的矩陣為:[

[1,2],

[3,5]

]輸入:rowsum =

[5,7,10], colsum =

[8,6,8]

輸出:[

[0,5,0],

[6,1,0],

[2,0,8]

]輸入:rowsum =

[14,9], colsum =

[6,9,8]

輸出:[

[0,9,5],

[6,0,3]

]輸入:rowsum =

[1,0], colsum =

[1]輸出:[

[1],

[0]]

假設輸出矩陣為ans,從左上角開始遍歷ans,盡可能讓當前位置的元素最大化,並不斷更新rowsum colsum。

舉個例子:

rowsum = [3,8], colsum = [4,7]。

ans[[0][0]最大為3,因為第一行的總和為3,列和為4,所以ans[0][0]不可能超過3. 我們將3放在ans[0][0]位置,因此rowsum = [0,8], colsum = [1,7];

ans[0][1]最大為0(因為rowsum[0]=0),此時rowsum = [0,8], colsum = [1,7]不變;

ans[1][0]最大為1,此時rowsum = [0,7], colsum = [0,7];

ans[1][1]最大為7,此時rowsum = [0,0], colsum = [0,0];

計算結束;

class

solution

else}}

return ans;}}

;

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

題目描述 給你兩個非負整數陣列 rowsum 和 colsum 其中 rowsum i 是二維矩陣中第 i 行元素的和,colsum j 是第 j 列元素的和。換言之你不知道矩陣裡的每個元素,但是你知道每一行和每一列的和。請找到大小為 rowsum.length x colsum.length 的任...

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

題目描述 給你兩個非負整數陣列 rowsum 和 colsum 其中 rowsum i 是二維矩陣中第 i 行元素的和,colsum j 是第 j 列元素的和。換言之你不知道矩陣裡的每個元素,但是你知道每一行和每一列的和。請找到大小為 rowsum.length x colsum.length 的任...

LeetCode 大於給定和最短子陣列

對於陣列的操作,在演算法實現中,可以考慮三種思想 陣地攻守 例題 指標碰撞 例題 滑動視窗 本題 給定乙個含有 n 個正整數的陣列和乙個正整數 s 找到乙個最小的連續子陣列的長度,使得這個子陣列的數字和 s 如果不存在符合條件的子陣列,返回 0。舉個例子,給定陣列 2,3,1,2,4,3 和 s 7...