LeetCode77
```cpp
class Solution {
vector<int> path;
vector<vector<int>> result;
public:
//1 2 3 4 5 6 7 8 9 10
//1.确定回溯函数的参数和返回值
//1.1返回值void
//1.2参数值需要一步一步来确定
void backtracking (int n, int k, int startIndex) {
//2.确定回溯终止的条件
if (path.size() == k) {
result.push_back(path);
return;
}
//3.确定单层搜索的过程
//for循环遍历宽度
//递归遍历深度
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) {
path.clear();
result.clear();
backtracking(n, k, 1);
return result;
}
};
此题的关键在于 startIndex参数的设置,因为计算机是一个很笨又蛮聪明的东西,你得需要告诉他从哪个位置开始遍历