递归回溯
class Solution {
public:
void Sum(int k,int n,int tot,int sta,vector<vector<int>>& res,vector<int>& ans)
{
if(tot>n||ans.size()>k)
return;
if(tot==n&&ans.size()==k)
{
res.push_back(ans);
return;
}
for(int i=sta;i<=9;i++)
{
ans.push_back(i);
Sum(k,n,tot+i,i+1,res,ans);
ans.pop_back();
}
}
vector<vector<int>> combinationSum3(int k, int n) {
vector<vector<int>> res;
vector<int> ans;
Sum(k,n,0,1,res,ans);
return res;
}
};