Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.
Example:
Input: n = 4, k = 2 Output: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]
1 class Solution { 2 List<List<Integer>> res = new ArrayList<>(); 3 public List<List<Integer>> combine(int n, int k) { 4 List<Integer> temp = new ArrayList<Integer>(); 5 help(temp,n,k,1); 6 return res; 7 8 } 9 private void help(List<Integer> temp,int n ,int k ,int index){ 10 if(k==0){ 11 res.add(new ArrayList<Integer>(temp)); 12 } 13 for(int i = index;i<=n;i++){ 14 temp.add(i); 15 help(temp,n,k-1,i+1); 16 temp.remove(temp.size()-1); 17 } 18 } 19 }