列表

详情


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

给你两个正整数:ntarget

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

返回符合条件的美丽数组所可能具备的 最小 和。

 

示例 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] 是美丽数组。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: long long minimumPossibleSum(int n, int target) { } };

javascript 解法, 执行用时: 55 ms, 内存消耗: 49.5 MB, 提交时间: 2024-03-08 09:29:04

/**
 * @param {number} n
 * @param {number} target
 * @return {number}
 */
var minimumPossibleSum = function(n, k) {
    const m = Math.min(k >> 1, n);
    return ((BigInt(m) * BigInt(m + 1) + BigInt(k * 2 + n - m - 1) * BigInt(n - m)) / 2n) % 1_000_000_007n;
};

rust 解法, 执行用时: 1 ms, 内存消耗: 2.1 MB, 提交时间: 2024-03-08 09:28:36

impl Solution {
    pub fn minimum_possible_sum(n: i32, target: i32) -> i32 {
        let n = n as i64;
        let k = target as i64;
        let m = n.min(k / 2);
        ((m * (m + 1) + (n - m - 1 + k * 2) * (n - m)) / 2 % 1_000_000_007) as i32
    }
}

golang 解法, 执行用时: 0 ms, 内存消耗: 2 MB, 提交时间: 2023-08-28 10:22:27

func minimumPossibleSum(n, k int) int64 {
    m := min(k/2, n)
    return int64((m*(m+1) + (k*2+n-m-1)*(n-m)) / 2)
}

func min(a, b int) int { if b < a { return b }; return a }

cpp 解法, 执行用时: 0 ms, 内存消耗: 5.8 MB, 提交时间: 2023-08-28 10:22:08

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

java 解法, 执行用时: 0 ms, 内存消耗: 38.3 MB, 提交时间: 2023-08-28 10:21:53

class Solution {
    public long minimumPossibleSum(int n, int k) {
        long m = Math.min(k / 2, n);
        return (m * (m + 1) + (k * 2 + n - m - 1) * (n - m)) / 2;
    }
}

python3 解法, 执行用时: 48 ms, 内存消耗: 16.1 MB, 提交时间: 2023-08-28 10:21:42

class Solution:
    def minimumPossibleSum(self, n: int, k: int) -> int:
        m = min(k // 2, n)
        return (m * (m + 1) + (k * 2 + n - m - 1) * (n - m)) // 2

上一题