2829. Determine the Minimum Sum of a k-avoiding Array
Description
You are given two integers, n and k.
An array of distinct positive integers is called a k-avoiding array if there does not exist any pair of distinct elements that sum to k.
Return the minimum possible sum of a k-avoiding array of length n.
Example 1:
Input: n = 5, k = 4 Output: 18 Explanation: Consider the k-avoiding array [1,2,4,5,6], which has a sum of 18. It can be proven that there is no k-avoiding array with a sum less than 18.
Example 2:
Input: n = 2, k = 6 Output: 3 Explanation: We can construct the array [1,2], which has a sum of 3. It can be proven that there is no k-avoiding array with a sum less than 3.
Constraints:
1 <= n, k <= 50
Solutions
Solution 1: Greedy + Simulation
Thinking
We need \(n\) distinct positive integers with no pair summing to \(k\), and the sum should be minimal. Starting from \(1\), take the next unused value and immediately forbid its partner \(k-i\), so each choice is the smallest still allowed.
Starting from the positive integer \(i = 1\), we sequentially determine if \(i\) can be added to the array. If it can be added, we add \(i\) to the array, accumulate it to the answer, and then mark \(k - i\) as visited, indicating that \(k-i\) cannot be added to the array. We continue this process until the array's length reaches \(n\).
The time complexity is \(O(n + k)\), and the space complexity is \(O(n + k)\). Where \(n\) is the length of the array.
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |