DEV Community

Abhishek Chaudhary
Abhishek Chaudhary

Posted on

1 1

Append K Integers With Minimal Sum

You are given an integer array nums and an integer k. Append k unique positive integers that do not appear in nums to nums such that the resulting total sum is minimum.

Return the sum of the k integers appended to nums.

Example 1:

Input: nums = [1,4,25,10,25], k = 2
Output: 5
Explanation: The two unique positive integers that do not appear in nums which we append are 2 and 3.
The resulting sum of nums is 1 + 4 + 25 + 10 + 25 + 2 + 3 = 70, which is the minimum.
The sum of the two integers appended is 2 + 3 = 5, so we return 5.

Example 2:

Input: nums = [5,6], k = 6
Output: 25
Explanation: The six unique positive integers that do not appear in nums which we append are 1, 2, 3, 4, 7, and 8.
The resulting sum of nums is 5 + 6 + 1 + 2 + 3 + 4 + 7 + 8 = 36, which is the minimum.
The sum of the six integers appended is 1 + 2 + 3 + 4 + 7 + 8 = 25, so we return 25.

Constraints:

  • 1 <= nums.length <= 105
  • 1 <= nums[i] <= 109
  • 1 <= k <= 108

SOLUTION:

class Solution:
    def minimalKSum(self, nums: List[int], k: int) -> int:
        nums.sort()
        nums.insert(0, 0)
        nums.append(float('inf'))
        print(nums)
        total = 0
        n = len(nums)
        for i in range(n - 1):
            if k >= nums[i + 1] - nums[i] - 1:
                if nums[i + 1] - nums[i] > 1:
                    total += nums[i + 1] * (nums[i + 1] - 1) // 2
                    total -= nums[i] * (nums[i] + 1) // 2
                    k -= nums[i + 1] - nums[i] - 1
            else:
                end = nums[i] + k
                beg = nums[i]
                total += end * (end + 1) // 2
                total -= beg * (beg + 1) // 2
                break
        return total
Enter fullscreen mode Exit fullscreen mode

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay