首先求出数组总和与goal的差值,这个差值无论是正还是负,我们都把他变成正数,然后按贪心的思想把它拆成尽可能少的满足limit限制的数即可。
class Solution {
public:
int minElements(vector<int>& nums, int limit, int goal) {
long long sum=accumulate(nums.begin(),nums.end(),0LL);
long long res=goal-sum;
res=abs(res);
return (res+limit-1)/limit;
}
};
时间复杂度:O(n)。
空间复杂度:O(1)。
本文介绍了一种基于贪心思想的算法,用于计算使数组元素总和达到目标值所需的最少元素数量。通过计算数组当前总和与目标值之间的差值,并将此差值拆分为尽可能少的、不超过限制值的整数之和。
606

被折叠的 条评论
为什么被折叠?



