2829.k-avoiding数组的最小总和

1.题目

2.思路

取数分为两部分 :

(1)数小于等于k时:

       因为两个数的和不能等于k,所以选择1时就不可以再选择k-1、选择2时就不可再选择k-2......所以,如果要和尽可能小,就要从1开始取,直到k/2.

(2)数大于k时:

没有什么限制了就,数越小越好。

计算:使用等差数列公式

3.代码:

(参考致谢:灵茶山艾府

链接:https://leetcode.cn/problems/determine-the-minimum-sum-of-a-k-avoiding-array/solutions/2396408/o1-gong-shi-pythonjavacgo-by-endlesschen-cztk/

来源:力扣(LeetCode))

class Solution {
public:
    int minimumSum(int n, int k) {
        int m = min(k / 2, n );
        return ((1+m)*m +(2*k+(n-m)-1)*(n-m))/2;
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值