class Solution {
public:
vector<vector<int> > combine(int n, int k) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector<vector<int> > result;
vector<int> num;
dfs(result,num,0,0,n,k);
return result;
}
void dfs(vector<vector<int> > &result, vector<int> &num, int depth, int j,int n, int k)
//从第j个点做深搜
{
if(depth==k)
{
result.push_back(num);
return;
}
for(int i=j;i<n;i++)
{
num.push_back(i+1);
dfs(result,num,depth+1,i+1,n,k);
num.pop_back();
}
}
};[Leetcode] Combinations
最新推荐文章于 2021-02-24 07:35:30 发布
本文介绍了一个C++实现的组合问题解决方案。通过递归深度优先搜索(DFS)算法,该方案可以找出所有可能的k个数的组合,这些数来自1到n的整数集合。代码中详细展示了如何使用递归进行回溯以找到所有有效的组合。
477

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



