77.组合
思路
无,按照代码随想录给出的模板,需要出现一个终止条件,以及for循环。终止条件负责收集结果及返回。for循环控制横向,循环内进行递归控制纵向
代码
List<List<Integer>> result=new ArrayList<>();
LinkedList<Integer> path=new LinkedList<>();
public List<List<Integer>> combine(int n, int k) {
backtracking(n,k,1);
return result;
}
public void backtracking(int n,int k,int startIndex){
if (path.size()==k){
result.add(new ArrayList<>(path));
return;
}
for (int i=startIndex;i<=n;i++){ //控制横向遍历
path.add(i); //处理节点
backtracking(n,k,i+1);//递归控制纵向遍历,下一层控制startIndex+1
path.removeLast(); //撤销操作
}
}