题意:
题解:
回溯三件套
跳出回溯
进入回溯 并处理
判断是否清除上一次的回溯处理情况
class Solution {
List<List<Integer>> root=new ArrayList<>();
List<Integer> list=new ArrayList<>();
public List<List<Integer>> combine(int n, int k) {
DFS(1,n,k);
return root;
}
public void DFS(int left,int n,int k){
//跳出回溯条件
if(list.size()==k){
root.add(new ArrayList(list));
return;
}
//回溯主体
for(int i=left;i<=n;i++){
list.add(i);
DFS(i+1,n,k);
list.remove(list.size()-1);
}
}
}