重構 2 行二進位制矩陣

2021-09-29 14:38:18 字數 1288 閱讀 1550

給你乙個 2 行 n 列的二進位制陣列:

矩陣是乙個二進位制矩陣,這意味著矩陣中的每個元素不是 0 就是 1。

第 0 行的元素之和為 upper。

第 1 行的元素之和為 lower。

第 i 列(從 0 開始編號)的元素之和為 colsum[i],colsum 是乙個長度為 n 的整數陣列。

你需要利用 upper,lower 和 colsum 來重構這個矩陣,並以二維整數陣列的形式返回它。

如果有多個不同的答案,那麼任意乙個都可以通過本題。

如果不存在符合要求的答案,就請返回乙個空的二維陣列。

示例 1:

輸入:upper = 2, lower = 1, colsum = [1,1,1]

輸出:[[1,1,0],[0,0,1]]

解釋:[[1,0,1],[0,1,0]] 和 [[0,1,1],[1,0,0]] 也是正確答案。

示例 2:

輸入:upper = 2, lower = 3, colsum = [2,2,1,1]

輸出:示例 3:

輸入:upper = 5, lower = 5, colsum = [2,1,2,0,1,0,1,2,0,1]

輸出:[[1,1,1,0,1,0,0,1,0,0],[1,0,1,0,0,0,1,1,0,1]]

1 <= colsum.length <= 10^5

0 <= upper, lower <= colsum.length

0 <= colsum[i] <= 2

class solution 

else if(colsum[i] == 2)

else

num1++;

}int targetupper = upper - num2;

if(targetupper > num1 || targetupper < 0)

return {};

int targetlower = lower - num2;

if(targetlower > num1 || targetlower < 0)

return {};

if(targetupper + targetlower == num1)

if(targetupper == 0)

break;

}i++;

for(;i < n; i++)

if(targetlower == 0)

break;

}return ret;

}return {};

}};

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

判斷二進位製半整數(二進位制)

10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...

mysql二進位制 MySql二進位制連線方式詳解

使用mysql二進位制方式連線 您可以使用mysql二進位制方式進入到mysql命令提示符下來連線mysql資料庫。例項以下是從命令列中連線mysql伺服器的簡單例項 root host mysql u root p enter password 在登入成功後會出現 mysql 命令提示視窗,你可以...