题目描述
Given two integers n and k, return all possible combinations of knumbers out of 1 ... n.
For example,
If n = 4 and k = 2, a solution is:
[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]
import java.util.*; public class Solution { public ArrayList<ArrayList<Integer>> combine(int n, int k) { ArrayList<ArrayList<Integer>> array=new ArrayList(); if(n<k) return array; ArrayList<Integer> list=new ArrayList(); help(n,1,k,list,array); return array; } public void help(int n,int cur,int count,ArrayList<Integer> list,ArrayList<ArrayList<Integer>> array) { if(count == 0) { array.add(new ArrayList(list)); return; } if(count+cur<=n+1) { list.add(cur); help(n,cur+1,count-1,list,array); list.remove(list.size()-1); help(n,cur+1,count,list,array); } }