无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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)遵守國家法律
石嘴山市| 黔东| 平定县| 静宁县| 积石山| 巧家县| 岑溪市| 五莲县| 垦利县| 郸城县| 奉化市| 芮城县| 古交市| 海宁市| 来凤县| 宜兴市| 西乌| 大田县| 巴林左旗| 尉犁县| 武义县| 深水埗区| 辉南县| 疏勒县| 北安市| 宜君县| 高安市| 鄂托克前旗| 上虞市| 济阳县| 肃宁县| 鄢陵县| 蒙山县| 游戏| 金乡县| 阳泉市| 原平市| 怀安县| 上饶县| 通州市| 石首市|