77.组合
题目链接:力扣
思路:确实是比较典型的回溯算法的方式,首先确定终止条件后就是将结果保存,然后进入for循环遍历回溯,注意在for循环中何时进行回溯以及如何进行回溯。具体代码如下:
class Solution {
private:
vector<vector<int>> result;
vector<int> path;
void backtracking(int n , int k, int startIndex){
if(path.size() == k){
result.push_back(path);
return;
}
for(int i = startIndex ; i <= n; i++){
path.push_back(i);
backtracking(n, k, i+1);
path.pop_back();
}
}
public:
vector<vector<int>> combine(int n, int k) {
result.clear();
path.clear();
backtracking(n, k, 1);
return result;
}
};