package pack1.pack0505;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class azure {
public static void main(String[] args) {
Solution s1=new Solution();
List<List<Integer>> r1= s1.combine(4,3);
System.out.println(r1);
}
}
class Solution {
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);
System.out.println("add "+path);
backtracking(n,k,i+1);
path.removeLast();
System.out.println("removeLast "+path);
}
}
}
回溯算法 组合问题
最新推荐文章于 2024-10-04 20:45:38 发布