Given an array of integers
arr[]
and a target number
k
, write a program to find
all unique combinations
in
arr[]
such that the sum of all integers in the combination is equal to
k
.
Problem Note
-
All numbers (including target number
k
) will be positive integers. -
The same number may be chosen from
arr[]
unlimited number of times. -
Elements in a combination (
a1
,a2
, … ,ak
) must be in non-descending order. (i.e,a1
≤a2
≤ … ≤ak
). - The combinations themselves must be sorted in ascending order, i.e., the combination with the smallest first element should be printed first.
- The solution set must not contain duplicate combinations.
Example 1
Input: arr[] = [2, 4, 6, 8], k = 8
Output:
[
[2, 2, 2, 2],
[2, 2, 4],
[2, 6],
[4, 4],
[8]
]
Explanation: All the unique combinations whose sum is 8 is printed.
2+2+2+2 = 8
2+2+4 = 8
2+6 = 8
4+4 = 8
8 = 8
Example 2
Input: arr[] = [2,3,5], k = 8
Output:
[
[2,2,2,2],
[2,3,3],
[3,5]
]
Explanation: All the unique combinations whose sum is 8 is printed.
2+2+2+2 = 8
2+3+3 = 8
3+5 = 8