class Solution {
public:
vector<vector<int>>ans;
void dfs(vector<int>&path,int start,int n,int k)//(第一个参数为存储的结果,第二个参数是当前选元素,第三个是n个数,第四个是选k个)
{
if(!k)
{
ans.push_back(path);
return;
}
if(start==n+1)return;
for(int i=start;i<=n;i++)
{
path.push_back(i);
dfs(path,i+1,n,k-1);
path.pop_back();//回溯完把状态恢复
}
}
vector<vector<int>> combine(int n, int k) {
vector<int>path;
dfs(path,1,n,k);
return ans;
}
};
leetcode 77. 组合
最新推荐文章于 2025-03-22 17:21:31 发布
本文介绍了一个使用递归和回溯算法解决组合问题的C++实现。通过定义一个Solution类,包含一个结合函数和一个深度优先搜索函数,可以找出所有可能的组合。此代码适用于寻找从1到n的所有k个数的组合。
454

被折叠的 条评论
为什么被折叠?



