Given an even number N, the task is to split all N powers of 2 into two sets such that the difference of their sum is minimum.
Input: n = 4
Here n = 4 which means we have 21, 22, 23, 24. The most optimal way to divide it into two groups with equal element is 24 + 21 in one group and 22 + 23 in another group giving a minimum possible difference of 6.
Input: n = 8
Here n = 8 which means we have 21, 22, 23, 24, 25, 26, 27, 28. The most optimal way to divide it into two groups with equal element is 28 + 21 + 22 + 23 in one group and 24 + 25 + 26 + 27 in another group giving a minimum possible difference of 30.
Approach: To solve the problem mentioned above we have to follow the steps given below:
- In the first group add the largest element that is 2N.
- After adding the first number in one group, add N/2 – 1 more elements to this group, where the elements has to start from the least power of two or from the beginning of the sequence.
For example: if N = 4 then add 24 to the first group and add N/2 – 1, i.e. 1 more element to this group which is the least which means is 21.
- The remaining element of the sequence forms the elements of the second group.
- Calculate the sum for both the groups and then find the absolute difference between the groups which will eventually be the minimum.
Below is the implementation of the above approach:
Time complexity: O(N)
Auxiliary Space: O(1)
- Split array into two subarrays such that difference of their sum is minimum
- Split array into K subsets to maximize their sum of maximums and minimums
- Partition an array of non-negative integers into two subsets such that average of both the subsets is equal
- Split array into two equal length subsets such that all repetitions of a number lies in a single subset
- Divide array in two Subsets such that sum of square of sum of both subsets is maximum
- Split numbers from 1 to N into two equal sum subsets
- Split a given array into K subarrays minimizing the difference between their maximum and minimum
- Rearrange an Array such that Sum of same-indexed subsets differ from their Sum in the original Array
- Split Array into min number of subsets with difference between each pair greater than 1
- Split a binary string into K subsets minimizing sum of products of occurrences of 0 and 1
- Check if it is possible to split given Array into K odd-sum subsets
- Split an Array A into Subsets having equal Sum and sizes equal to elements of Array B
- Split N natural numbers into two sets having GCD of their sums greater than 1
- Partition a set into two subsets such that difference between max of one and min of other is minimized
- Partition a set into two non-empty subsets such that the difference of subset sums is maximum
- Split the number into N parts such that difference between the smallest and the largest part is minimum
- Split the given array into K sub-arrays such that maximum sum of all sub arrays is minimum
- Partition first N natural number into two sets such that their sum is not coprime
- Check if an array can be split into subsets of K consecutive elements
- Count pairs from 1 to N such that their Sum is divisible by their XOR
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.