TomoLink
CompaniesTCSData Structures & AlgorithmsMinimum Difference in Sums After Removal of Elements
DSA
HardArray

Minimum Difference in Sums After Removal of Elements

arraydynamic programmingheap (priority queue)

Problem Statement

You are given a 0-indexed integer array nums consisting of 3 * n elements.

You are allowed to remove any subsequence of elements of size exactly n from nums . The remaining 2 * n elements will be divided into two equal parts:

The first n elements belonging to the first part and their sum is sum _first .

The next n elements belonging to the second part and their sum is sum _second .

The difference in sums of the two parts is denoted as sum _first - sum _second .

For example, if sum _first = 3 and sum _second = 2 , their difference is 1 .

Similarly, if sum _first = 2 and sum _second = 3 , their difference is -1 .

Return the minimum difference possible between the sums of the two parts after the removal of n elements .

Examples

Example 1
Input: nums = [3,1,2]
Output: -1
Here, nums has 3 elements, so n = 1. Thus we have to remove 1 element from nums and divide the array into two equal parts. - If we remove nums[0] = 3, the array will be [1,2]. The difference in sums of the two parts will be 1 - 2 = -1. - If we remove nums[1] = 1, the array will be [3,2]. The difference in sums of the two parts will be 3 - 2 = 1. - If we remove nums[2] = 2, the array will be [3,1]. The difference in sums of the two parts will be 3 - 1 = 2. The minimum difference between sums of the two parts is min(-1,1,2) = -1.
Example 2
Input: nums = [7,9,5,8,1,3]
Output: 1
Here n = 2. So we must remove 2 elements and divide the remaining array into two parts containing two elements each. If we remove nums[2] = 5 and nums[3] = 8, the resultant array will be [7,9,1,3]. The difference in sums will be (7+9) - (1+3) = 12. To obtain the minimum difference, we should remove nums[1] = 9 and nums[4] = 1. The resultant array becomes [7,5,8,3]. The difference in sums of the two parts is (7+5) - (8+3) = 1. It can be shown that it is not possible to obtain a difference smaller than 1.

Constraints

nums.length == 3 * n
1 <= n <= 10 ^5
1 <= nums[i] <= 10 ^5
😤
Hard
Difficulty
Topic Info
ModuleDSA
CategoryArray
Sub-topicDynamic Programming
Tags
arraydynamic programmingheap (priority queue)
Navigation
Minimum Difference in Sums After Removal of Elements [Hard] | TCS Dsa | TomoLink