216. 组合总和 III
题目链接:216. 组合总和 III
代码如下:
//回溯
class Solution {
public:
vector<vector<int>> res;
vector<int> path;
//k是需要的个数,n是所求之和,index是数字的顺序,sum代表目前之和
void backtracking(int k,int n,int index,int sum)
{
if(path.size()==k)
{
if(n==sum)
res.emplace_back(path);
return;
}
for(int i=index;i<=9;i++)
{
sum+=i;
path.emplace_back(i);
backtracking(k,n,i+1,sum);
path.pop_back();//回溯
sum-=i;
}
}
vector<vector<int>> combinationSum3(int k, int n) {
backtracking(k,n,1,0);
return res;
}
};