39. Combination Sum

来源:互联网 发布:中囯邮政网络培训学院 编辑:程序博客网 时间:2024/06/06 15:46
class Solution {
public:
vector<vector<int> > combinationSum(vector<int>& candidates, int target) {
vector<vector<int> > res;
vector<int> path;
sort(candidates.begin(),candidates.end());
helper(candidates, 0, 0, target, path, res);
return res;
}

void helper(vector<int>& nums,
int pos,
int base,
int target,
vector<int> &path,
vector<vector<int> > &res) {
if(base == target){
res.push_back(path);
return;
}
if(base > target)
return;
for(int i=pos; i<nums.size(); i++){
path.push_back(nums[i]);
helper(nums, i, base+nums[i], target, path, res);
path.pop_back();
}
}
};
0 0
原创粉丝点击