//不含重复数字的组合 回溯算法
vector<vector<int >>res;
vector<vector<int>combine(int n,int k){
if(n<=0||k<=0) return res;
vector<int >track;
backtrack(n,k,1,track);
return res;
}
void backtrack(int n,int k,int start,vector<int>&track){
if(k==track.size()){
res.push_back(track);
return res;
}
for(int i=start;i<=n;i++){
track.push_back(i);
backtrack(n,k,start+1,track);
track.pop_back();
}
}
算法入门 31.数字组合(回溯)
最新推荐文章于 2022-06-17 18:48:43 发布
这篇博客介绍了如何运用回溯算法解决在给定范围内生成不包含重复数字的组合问题。通过一个名为`backtrack`的递归函数,从指定起始位置开始,逐个尝试加入到当前路径中,直到达到目标组合长度。当达到目标组合长度时,将当前路径添加到结果集中。整个过程避免了重复数字的出现,有效地生成所有可能的组合。
摘要由CSDN通过智能技术生成