216. 组合总和 III
✅做题思路or感想
经典回溯
用startIndex
来控制元素的范围,避免重复
class Solution {
public:
vector<int>vec;
vector<vector<int>>result;
void dfs(int k, int n, int startIndex) {
//递归中止条件
if (k == 0 && n == 0) {
result.push_back(vec);
return;
}
//处理数据
for (int i = startIndex; i <= 9; i++) {
vec.push_back(i);
dfs(k - 1, n - i, i + 1);
vec.pop_back();//回溯
}
}
vector<vector<int>> combinationSum3(int k, int n) {
dfs(k, n, 1);
return result;
}
};