77.组合
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。
- DFS
class Solution {
public:
vector<vector<int>> combine(int n, int k) {
if(k == 0) return {};
vector<vector<int> > res;
vector<int> tmp;
DFS(res,tmp,1,k,n);
return res;
}
void DFS(vector<vector<int> > &res,vector<int> &tmp,int count,int k,int n){
if(tmp.size() == k){
res.push_back(tmp);
return;
}
for(int i = count;i < n + 1;i++){
tmp.push_back(i);
DFS(res,tmp,i+1,k,n);
tmp.pop_back();
}
}
};
通过时间:

组合生成算法详解
本文深入解析了组合生成算法,提供了一种使用深度优先搜索(DFS)实现从1到n的所有可能k个数组合的方法。通过递归调用,文章详细展示了如何有效地生成组合,并附带了完整的C++代码实现。

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



