給你乙個 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]]
時間複雜度o(n),額外空間複雜度o(1)(兩個list是題目要求必須申請的空間)
《重構》 2 重構原則 讀書筆記
1 重構不只是整理 而是一種更搞笑且受控的 整理技術。2 但必須對軟體 可受觀察之外部行為 只造成很小變化,或甚至不造成變化。與之形成對比的是 效能優化 和重構一樣,效能優化通常不會改變元件的行為,只會改變其內部結構。但是兩者出發點不同 效能優化往往使 較難理解,但為了得到所需的效能你不得不那麼做。...
glest學習筆記2 重構
目前重構過程工作目錄 0.00 original 0.00 2 original.fps 0.02 move.render.renderunits.to.world.renderunits 0.04 harvest 0.06 firstattackcommand 0.08 2ccrepair.has...
Chapter 2 重構的原則
在不改變軟體可觀察行為的前提下,使用一些重構的手法,提高 可讀性。換句話說,在保持軟體可用的前提下,修改 使得更加容易被理解。為了後續的 維護和修改,易讀是重構的核心價值。除此之外,重構隨之帶來的好處有 總而言之 重構的門檻遠遠沒有想象中那麼高,重構是對既有 的修改,也許我們在無意識中就已經做了這樣...