leetcode 40: Combination Sum II

来源:互联网 发布:windows系统文件损坏 编辑:程序博客网 时间:2024/05/16 07:35
class Solution {public:    vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {        vector<vector<int> > res;        vector<int> set;        sort(candidates.begin(),candidates.end());        helper(candidates,0,target,set,res);        return res;    }    void helper(vector<int>& candidates,int idx,int target,vector<int>& set,vector<vector<int> >& res){        for(int i=idx;i<candidates.size()&&candidates[i]<=target;i++)        {            if(i==idx||candidates[i]!=candidates[i-1])//The cases with repeat numbers are considered in the recursion, so they should not be considered in the loop            {                set.push_back(candidates[i]);                if(candidates[i]==target)                {                    res.push_back(set);                    set.pop_back();                    break;                }                else                {                    helper(candidates,i+1,target-candidates[i],set,res);                    set.pop_back();                }            }        }    }};

0 0