給你兩個非負整數陣列 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...