组合三部曲
- 确定函数参数和递归终止条件
- for循环遍历树的深度和宽度
- 回溯记得pop_back.
1. 组合
- 为了简单将两个vector设为全局变量
- startindex要传入,不然递归时无法往下更新
- 递归过程中伴随回溯,path.pop_back就是在回溯过程中使用的,
class Solution {
public:
vector<vector<int>>res;
vector<int>path;
void backtracking(int n,int k,int startindex){
if(path.size()==k){
res.push_back(path);
return;
}
for(int i=startindex;i<=n;i++){
path.push_back(i);
backtracking(n,k,i+1);
path.pop_back();
}
}
vector<vector<int>> combine(int n, int k) {
backtracking(n,k,1);
return res;
}
};