Problem
leetcode链接problem
Code
好像有点对回溯有点味道了,上代码吧。
class Solution {
public:
vector<vector<int>> res;
vector<int> row;
vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
if(candidates.empty())
return res;
sort(candidates.begin(),candidates.end());
combination(candidates,target,0);
return res;
}
void combination(vector<int>& candidates, int target, int index){
if(target<0)
return;
if(target==0){
res.push_back(row);
return;
}
else{
for(int i=index;i<candidates.size();++i){
if (i > index && candidates[i] == candidates[i - 1])
continue;
row.push_back(candidates[i]);
combination(candidates,target-candidates[i],i+1);
row.pop_back();
}
}
}
};