public class Solution {
public List<List<Integer>> combine(int n, int k) {
List<List<Integer>> combSet=new ArrayList<List<Integer>>();
List<Integer> comb=new ArrayList<Integer>();
if(n<k){
return combSet;
}
helper(n, k, combSet, comb, 1);
return combSet;
}
public void helper(int n, int k, List<List<Integer>> combSet, List<Integer> comb, int start){
if(comb.size()==k){
combSet.add(new ArrayList<Integer>(comb));
return;
}
else{
for(int i=start;i<=n;i++){
comb.add(i);
helper(n, k, combSet, comb, i+1);
comb.remove(comb.size()-1);
}
}
}
}
public List<List<Integer>> combine(int n, int k) {
List<List<Integer>> combSet=new ArrayList<List<Integer>>();
List<Integer> comb=new ArrayList<Integer>();
if(n<k){
return combSet;
}
helper(n, k, combSet, comb, 1);
return combSet;
}
public void helper(int n, int k, List<List<Integer>> combSet, List<Integer> comb, int start){
if(comb.size()==k){
combSet.add(new ArrayList<Integer>(comb));
return;
}
else{
for(int i=start;i<=n;i++){
comb.add(i);
helper(n, k, combSet, comb, i+1);
comb.remove(comb.size()-1);
}
}
}
}