class Solution {
public:
int sum(vector<int> t){
int cnt = 0;
for(int i=0;i<t.size();i++)
cnt+=t[i];
return cnt;
}
void dfs(int level,int target,vector<int>& a,int cnt){
int s = sum(a);
if(s==target&&a.size()==cnt){
result.push_back(a);
return;
}
if(s==target&&a.size()!=cnt||s>target)return;
else{
for(int i=level;i<num.size();i++){
a.push_back(num[i]);
dfs(i+1,target,a,cnt);
a.pop_back();
}
}
}
vector<vector<int>> combinationSum3(int k, int n) {
vector<int> tmp;
for(int i=0;i<9;i++)
num.push_back(i+1);
dfs(0,n,tmp,k);
return result;
}
private:
vector<int> num;
vector<vector<int>> result;
};
Combination Sum III
最新推荐文章于 2022-04-16 09:38:36 发布