- 题目描述
- 思路分析
- 代码实现
点这里
思路分析组合型枚举(dfs)
三种枚举的方法详解在这里
实现组合型枚举有两种dfs思路:上面文章中的是枚举每个数选还是不选。
那这篇文章选用另一种思路来写:枚举k个位置选哪个数。
class Solution {
public:
vector> ans;
vector path;
vector> combine(int n, int k) {
dfs(n,k,1,1);
return ans;
}
void dfs(int n,int k,int u,int dex){
if(u==k+1){
ans.push_back(path);
return;
}
for(int i=dex;i<=n;i++){
path.push_back(i);
dfs(n,k,u+1,i+1);
path.pop_back();
}
}
};



