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 31 32
| class Solution { private final List<List<Integer>> ans = new LinkedList<>(); private final List<Integer> nums = new ArrayList<>();
public List<List<Integer>> combine(int n, int k) { for (int i = 0; i < n; i++) { nums.add(i + 1); }
combine(new LinkedList<>(), k); return ans; }
private void combine(List<Integer> tmp, int k) { if (k == 0) { ans.add(new LinkedList<>(tmp)); return; }
int index = tmp.size() == 0 ? 0 : tmp.get(tmp.size() - 1); for (int i = index; i < nums.size(); i++) { List<Integer> newTmp = new ArrayList<>(tmp); newTmp.add(nums.get(i)); combine(newTmp, k - 1); } } }
|