1785 構成特定和需要新增的最少元素

2021-10-22 16:53:21 字數 1389 閱讀 1887

題目描述:

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