题目链接:
题目描述:
寻找所有满足k个数之和等于n的组合,只允许使用数字1-9,并且每一种组合中的数字应该是唯一的。
确保组合中的数字以递增顺序排列。
思路:
回溯。水题。
代码:
class Solution {
public:
vector<vector<int>> res;
vector<int> cmb;
void combinationSum3(int idx,int cnt,int sum,int k,int n){
if((cnt>=k && sum!=n) || sum>n){
return;
}
else if(cnt==k && sum==n){
res.push_back(cmb);
return;
}
for(int i=idx;i<10;i++){
cmb.push_back(i);
combinationSum3(i+1,cnt+1,sum+i,k,n);
cmb.pop_back();
}
}
vector<vector<int>> combinationSum3(int k, int n) {
combinationSum3(1,0,0,k,n);
return res;
}
};