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
| class Solution{ List<List<Integer>> result = new ArrayList<>(); List<Integer> list = new ArrayList<>(); public List<List<Integer>> combine(int n, int k){ dfs(1, n, k); return result; } public void dfs(int cur, int n, int k){ if((list.size() + n - cur + 1) < k){ return; } if(list.size() == k){ result.add(new ArrayList<Integer>(list)); return; } list.add(cur); dfs(cur + 1, n, k); list.remove(list.size() - 1); dfs(cur + 1, n , k); } }
|