題目描述:
給你乙個整數陣列 nums ,和兩個整數 limit 與 goal 。陣列 nums 有一條重要屬性:abs(nums[i]) <= limit 。
返回使陣列元素總和等於 goal 所需要向陣列中新增的 最少元素數量 ,新增元素 不應改變 陣列中 abs(nums[i]) <= limit 這一屬性。
注意,如果 x >= 0 ,那麼 abs(x) 等於 x ;否則,等於 -x 。
示例 1:
輸入:nums = [1,-1,1], limit = 3, goal = -4
輸出:2
解釋:可以將 -2 和 -3 新增到陣列中,陣列的元素總和變為 1 - 1 + 1 - 2 - 3 = -4 。
示例 2:
輸入:nums = [1,-10,9,1], limit = 100, goal = 0
輸出:1
1 <= nums.length <= 105
1 <= limit <= 106
-limit <= nums[i] <= limit
-109 <= goal <= 109
方法1:
(1)貪心;
(2)先將原陣列中的所有的元素進行求和,將該和減去goal,若是已經為0,則說明不用插入新的元素,直接返回0;
(3)否則, 對該值取絕對值,然後將該值除以limit得到res,再判斷該值是否能夠整除limit,若不能,需要對res再自增1;
class
solution
cur_goal-
=goal;
//獲得差值
if(cur_goal==0)
cur_goal=
abs(cur_goal)
;//否則對該差值取絕對值
//判斷該差值可以由多少個元素組成
int res=cur_goal/limit;
if(cur_goal%limit!=0)
return res;}}
;
go語言實現
func
minelements
(nums [
]int
, limit int
, goal int
)int
cur_goal-=goal
if cur_goal==
0if cur_goal<
0 res :=cur_goal/limit
if cur_goal%limit!=
0return res
}
遞迴的構成原理和實現
遞迴,就是在執行的過程中呼叫自己。構成遞迴需具備的條件 1.子問題須與原始問題為同樣的事,且更為簡單 2.不能無限制地呼叫本身,須有個出口,化簡為非遞迴狀況處理。在數學和電腦科學中,遞迴指由一種 或多種 簡單的基本情況定義的一類物件或方法,並規定其他所有情況都能被還原為其基本情況。棧的大小 使用區域...
Kettle和ETL的基本構成
不多說,直接上乾貨!這裡,我說的通俗易懂點,好方便大家的理解。etl解決方案就像業務流程一樣,具有輸入 輸出,以及乙個或多個工作環節,處理步驟。同樣的,這些步驟也具有輸入和輸出,並可以執行將乙個輸人轉化為輸出的操作。想一想,例如,在一家保險公司理賠部,門上有乙個大牌子,上面寫著理賠部,這就意味著它描...
數字證書的構成和原理
1 在windows下檢視乙個證書時,介面是這樣的,我們主要關注一下details tab頁,其中的內容比較長,我滾動內容後後抓了三個圖,把完整的資訊顯示出來 裡面的內容比較多 version serial number signature algorithm 等等,挑幾個重要的解釋一下。issue...