leetcode

来源:互联网 发布:手机淘宝内部优惠券 编辑:程序博客网 时间:2024/06/05 01:10

Question 40–Combination Sum 2

给定一组有重复元素的整数集和一个目标元素target,整数集中的每个整数只能使用一次,求出该整数集中所有的和为target的整数组合。

code

void csiterator(int start,vector<int>& basics, vector<int>& candidates, int target, vector<vector<int>>& results){    int sum=0;    for(int a: basics) sum+=a;    if(sum==target){        results.push_back(basics);        return;    }    //else if(sum>target) return;    for(int i=start; i<candidates.size(); i++){        if(i>start&&candidates[i]==candidates[i-1]) continue;        basics.push_back(candidates[i]);        sum=0;        for(int a: basics) sum+=a;        if(sum<=target) csiterator(i+1,basics,candidates,target,results);        basics.pop_back();    }}vector<vector<int>> combinationSum2(vector<int>& candidates, int target){    sort(candidates.begin(), candidates.end());    vector<vector<int>> results;    csiterator(0,*(new vector<int>()),candidates,target,results);    return results;}
原创粉丝点击