-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathSolution.java
30 lines (28 loc) · 917 Bytes
/
Solution.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.ArrayList;
import java.util.List;
class Solution {
public static void main(String []args){
int []nums={2,3,6,7};
int target=7;
System.out.println(combinationSum(nums,target));
}
public static List<List<Integer>> combinationSum(int[] candidates, int target) {
List<List<Integer>>ans=new ArrayList<>();
generate(candidates,target,0,ans,new ArrayList<>());
return ans;
}
public static void generate(int []candidates,int target,int i,List<List<Integer>>ans,List<Integer>al){
if(target==0){
ans.add(new ArrayList<>(al));
return;
}
while(i<candidates.length){
if(candidates[i]<=target){
al.add(candidates[i]);
generate(candidates,target-candidates[i],i,ans,al);
al.remove(al.size()-1);
}
i++;
}
}
}