题目:
解析:
代码:
private List<List<Integer>> ret;private List<Integer> path;private int n,k;public List<List<Integer>> combine(int _n, int _k) {n = _n;k = _k;path = new ArrayList<>();ret = new ArrayList<>();dfs(1);return ret;} private void dfs(int start){if(path.size() == k){ret.add(new ArrayList(path));return;} for(int i = start; i <= n; i++){path.add(i);dfs(i+1);//剪枝:选过接着往后选path.remove(path.size()-1);//恢复现场}}