class Solution {
public:
int nums[9] = {1,2,3,4,5,6,7,8,9};
vector<vector<int>> res;
vector<vector<int>> combinationSum3(int k, int n) {
vector<int> path;
dfs(k,n,path,0);
return res;
}
void dfs(int k, int n, vector<int> path, int index){
if(k<0) return;
if(n==0&&k==0){
res.push_back(path);
return;
}
for(int i=index;i<9;i++){
if(nums[i]>n) break;
path.push_back(nums[i]);
dfs(k-1,n-nums[i],path,i+1);
path.pop_back();
}
}
};