文章目录
- [2834. 找出美丽数组的最小和](https://leetcode.cn/problems/find-the-minimum-possible-sum-of-a-beautiful-array/)
- 思路:
- 代码:
2834. 找出美丽数组的最小和
思路:
1.n
是数组的长度。k 是题目中的target。m
的值是通过取k / 2
和n
的较小值来计算的,这是因为当选取的数字超过k / 2
时,可能会存在两个数加起来等于k
的情况。
2.计算从1加到m
的和,即m * (m + 1) / 2
。在这个范围内的任意两个数相加都不会等于k
3.计算剩余部分的和(n - m - 1 + k * 2) * (n - m) / 2
4.最后,对结果取模1_000_000_007
代码:
public int minimumPossibleSum(int n, int k) {
long m = Math.min(k / 2, n);
return (int) ((m * (m + 1) + (n - m - 1 + k * 2) * (n - m)) / 2 % 1_000_000_007);
}
点击移步博客主页,欢迎光临~