class Solution {
public:
? ? vector<vector<int>>ret;
? ? vector<int>path;
? ? ? ? ? ?void dfs(int k,int n,int sum,int start){
? ? ? ? ? ? if(path.size()==k){
? ? ? ? ? ? ? ? if(sum==n)
? ? ? ? ? ? ? ? ret.push_back(path);
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }
? ? ? ? ? ? for(int i=start;i<=9;i++){
? ? ? ? ? ? ? ? path.push_back(i);
? ? ? ? ? ? ? ? sum+=i;
? ? ? ? ? ? ? ? dfs(k,n,sum,i+1);
? ? ? ? ? ? ? ? path.pop_back();
? ? ? ? ? ? ? ? sum-=i;
? ? ? ? ? ? }
? ? ? ? }
? ? ?vector<vector<int>> combinationSum3(int k, int n) {
? ? ? ? ?dfs(k,n,0,1);
? ? ? ? ?return ret;? ? ? ??
? ? }
};