【每日一题】2834. 找出美丽数组的最小和-2024.3.8

题目:

2834. 找出美丽数组的最小和

给你两个正整数:n 和 target 。

如果数组 nums 满足下述条件,则称其为 美丽数组 。

  • nums.length == n.
  • nums 由两两互不相同的正整数组成。
  • 在范围 [0, n-1] 内,不存在 两个 不同 下标 i 和 j ,使得 nums[i] + nums[j] == target 。

返回符合条件的美丽数组所可能具备的 最小 和,并对结果进行取模 109 + 7

示例 1:

输入:n = 2, target = 3
输出:4
解释:nums = [1,3] 是美丽数组。
- nums 的长度为 n = 2 。
- nums 由两两互不相同的正整数组成。
- 不存在两个不同下标 i 和 j ,使得 nums[i] + nums[j] == 3 。
可以证明 4 是符合条件的美丽数组所可能具备的最小和。

示例 2:

输入:n = 3, target = 3
输出:8
解释:
nums = [1,3,4] 是美丽数组。 
- nums 的长度为 n = 3 。 
- nums 由两两互不相同的正整数组成。 
- 不存在两个不同下标 i 和 j ,使得 nums[i] + nums[j] == 3 。
可以证明 8 是符合条件的美丽数组所可能具备的最小和。

示例 3:

输入:n = 1, target = 1
输出:1
解释:nums = [1] 是美丽数组。

提示:

  • 1 <= n <= 109
  • 1 <= target <= 109

解答:

代码:

class Solution {
    public int minimumPossibleSum(int n, int target) {
        final int MOD=(int)1e9+7;
        int m=target/2;
        if(n<=m){
            return (int)((long)(1+n)*n/2%MOD);
        }
        return (int) (((long) (1 + m) * m / 2 + 
                ((long) target + target + (n - m) - 1) * (n - m) / 2) % MOD);

    }
}

结果:

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 03:06:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 03:06:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 03:06:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 03:06:02       18 阅读

热门阅读

  1. LeetCode1547. Minimum Cost to Cut a Stick——区间dp

    2024-03-11 03:06:02       27 阅读
  2. 前端缓存使用规范

    2024-03-11 03:06:02       20 阅读
  3. 深入了解 Jetpack Compose 中的 Modifier

    2024-03-11 03:06:02       24 阅读
  4. 基于单片机的四路抢答器的设计

    2024-03-11 03:06:02       24 阅读
  5. (自用笔记)每天一点vue3——第一天setup/defineProps

    2024-03-11 03:06:02       25 阅读
  6. RestTemplate的应用

    2024-03-11 03:06:02       21 阅读