输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]
class Solution {
private List<List<Integer>> res;
public List<List<Integer>> combine(int n, int k) {
res = new ArrayList<List<Integer>>();
if (n<1 || k<1 || n<k) {
return res;
}
List<Integer> selected = new ArrayList<Integer>();
pickNext(1, n, k, selected);
return res;
}
public void pickNext(int min, int max, int k, List<Integer> selected) {
if (k==0) {
res.add(new ArrayList<Integer>(selected));
return;
}
for (int i=min; i<=max-k+1; i++) {
selected.add(i);
pickNext(i+1, max, k-1, selected);
selected.remove(selected.size()-1);
}
}
}