class Solution {
private:
void combination(vector<vector<int>>&result,vector<int> &cur,vector<int> &candidate,int target,int begin)
{
if(!target)
{
result.push_back(cur);
return;
}
else
{
for(int i=begin;i<candidate.size()&&target>=candidate[i];i++)
{
if(i==begin||candidate[i]!=candidate[i-1])
{
cur.push_back(candidate[i]);
combination(result,cur,candidate,target-candidate[i],i+1);
cur.pop_back();
}
}
}
}
public:
vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
sort(candidates.begin(),candidates.end());
vector<int> cur;
vector<vector<int>> result;
combination(result,cur,candidates,target,0);
return result;
}
};
40. Combination Sum II
最新推荐文章于 2020-01-16 23:36:27 发布