最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

LeetCode:1785. 構(gòu)成特定和需要添加的最少元素

2023-02-19 17:54 作者:就tm你叫玉璽啊  | 我要投稿

題目:

給你一個(gè)整數(shù)數(shù)組?nums?,和兩個(gè)整數(shù)?limit?與?goal?。數(shù)組?nums?有一條重要屬性:abs(nums[i]) <= limit?。

返回使數(shù)組元素總和等于?goal?所需要向數(shù)組中添加的?最少元素?cái)?shù)量?,添加元素?不應(yīng)改變?數(shù)組中?abs(nums[i]) <= limit?這一屬性。

注意,如果?x >= 0?,那么?abs(x)?等于?x?;否則,等于?-x?。

難度:中等

示例 1:

輸入:nums = [1,-1,1], limit = 3, goal = -4

輸出:2

解釋:可以將 -2 和 -3 添加到數(shù)組中,數(shù)組的元素總和變?yōu)?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

代碼如下:

class Solution {

public:

? ? int minElements(vector<int>& nums, int limit, int goal) {

? ? ? ? //記錄nums數(shù)組中每一個(gè)數(shù)據(jù)相加之和

? ? ? ? //注意:必須使用longlongint,若用int會(huì)因?yàn)閿?shù)據(jù)過大而溢出

? ? ? ? long long int sum = 0;

? ? ? ? //計(jì)算nums中數(shù)據(jù)之和

? ? ? ? //正常for循環(huán)同樣可以計(jì)算,只需i<nums.size(),但是這樣更快

? ? ? ? for(auto n:nums)

? ? ? ? {

? ? ? ? ? ? sum+=n;

? ? ? ? }

? ? ? ? //計(jì)算目標(biāo)值和數(shù)組中數(shù)據(jù)和的差值的絕對(duì)值用于向上取整。同樣得用longlong

? ? ? ? long long int x = abs(goal-sum);

? ? ? ? //若x能被limit整除,則答案為x/limit;若x不能被整除,則答案為x/limit+1。

? ? ? ? //此時(shí)答案為(x+limit-1)/limit與上面一行等價(jià)(可自行驗(yàn)證)

? ? ? ? return (x+limit-1)/limit;

? ? }

};


很簡單的中等難度題,一共七行代碼就可以寫完。開始int溢出的時(shí)候還以為要邊遍歷邊維護(hù),結(jié)果加個(gè)longlong就完事了

LeetCode:1785. 構(gòu)成特定和需要添加的最少元素的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
白河县| 夏邑县| 云梦县| 景谷| 自治县| 克拉玛依市| 黑龙江省| 桐城市| 神农架林区| 浦城县| 秦安县| 内丘县| 龙门县| 镇宁| 永胜县| 临夏县| 昌乐县| 淄博市| 阳高县| 常山县| 突泉县| 定陶县| 绥滨县| 长丰县| 宣汉县| 手游| 涟水县| 定远县| 南安市| 江华| 驻马店市| 子长县| 雅江县| 天全县| 玉溪市| 抚顺市| 眉山市| 巨野县| 镇平县| 疏附县| 长沙县|