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

歡迎光臨散文網(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)遵守國家法律
山东省| 丽水市| 宁南县| 横峰县| 郑州市| 富民县| 望都县| 黔东| 黑龙江省| 吉林市| 静乐县| 屯留县| 玛纳斯县| 土默特左旗| 博客| 西充县| 临邑县| 桑植县| 虹口区| 泊头市| 麻栗坡县| 开封市| 土默特左旗| 天长市| 隆尧县| 治多县| 台东市| 阳谷县| 博白县| 乌兰察布市| 白城市| 千阳县| 常山县| 津南区| 北流市| 宣化县| 柏乡县| 河南省| 德州市| 年辖:市辖区| 绩溪县|