zoukankan      html  css  js  c++  java
  • 1785. 构成特定和需要添加的最少元素

    给你一个整数数组 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

    向上取整除法:
    ceil(abs(goal-sum)/limit) = (abs(goal-sum)+limit-1) / limit.

    class Solution {
    public:
        int minElements(vector<int>& nums, int limit, int goal) {
            long sum=accumulate(begin(nums),end(nums),0LL);
            long d=abs(goal-sum);
            return (d+limit-1)/limit;
        }
    };
  • 相关阅读:
    Git远程仓库
    Git操作
    Git理论基础
    Git的配置
    什么是Git
    oracle session_cached_cursors 与 open_cursors参数详解及配置语句
    Jersey的Filter详解
    Spring如何自动注入一个接口多个实现实例
    mave常用设置
    Windows系统-删除指定服务
  • 原文地址:https://www.cnblogs.com/xxxsans/p/14502379.html
Copyright © 2011-2022 走看看