|
Be the first user to complete this post
|
Add to List |
49. Find the Unreachable Minimum in Array Subsets
Objective: Given a sorted array of positive integers, find the smallest integer that cannot be represented as the sum of any subset of the array
Examples :
Array {1,1,3,4,6,7,9} smallest Number : 32
Array {1,1,1,1,1} smallest Number : 6
Array {2,3,6,7} smallest Number : 1
Array {1,2,6,7,9} smallest Number : 4
Approach:
- If 1 is not present in the array, our answer is 1.
- So take a variable "smlNumber" and assign 1 to it.
- Now we need to find the gap between the array elements which cannot be represented as the sum of any subset of the array.
- To find that keep adding the array elements to smlNumber and check its current array element and if at any point smlNumber<current array element that means we have found the gap. print smlNumber.
Array {1,2,6,7,9}
Here we can make 1,2,3(2+1).
Next Smallest number you can make is 6 and then 7(6+1).
NO WAY you can make 4 and 5. since 5>4, 4 is our answer.
i=0, arrA[0] =1, smlNo =1
arrA[0] <=smlNo (1<=1) so smlNo += arrA[0] = 1+1 = 2
i=1, arrA[1] =2, smlNo = 2
arrA[1] <=smlNo (2<=2) sp smlNo += arrA[1] = 2+2 = 4
i=2, arrA[2] =6, smlNo = 4
arrA[2] > smlNo (6>4), break, print smlNo (4).
Output:
Smallest Positive Integer that cant be represented by the sum of any subset of following arrays are :
{1,1,3,4,6,7,9} - 32
{1,1,1,1,1} -> 6
{2,3,6,7} -> 1
{1,2,6,7,9} -> 4