Combination Sum

来源:互联网 发布:淘宝店铺转让后被找回 编辑:程序博客网 时间:2024/05/18 03:08

之前写的都没了= =还打算多写些再一起发呢

赶紧把今天写的贴上来

class Solution {private:    vector<vector<int> > ans;    vector<int> count;public:    vector<vector<int> > combinationSum(vector<int> &candidates, int target) {        sort(candidates.begin(),candidates.end());        count.resize(candidates.size());        ans.clear();                solve(target,candidates,0,candidates.size());                return ans;    }    void solve(int target,vector<int> &candidates,int index,int maxDep)    {        if(target<0)            return ;        if(target == 0)        {            vector<int> temp;            temp.clear();            for(int i = 0;i<maxDep;i++)                for(int j = 0;j<count[i];j++)                    temp.push_back(candidates[i]);            ans.push_back(temp);            return;        }        if(index==maxDep)            return ;        if(index>1&&candidates[index-1]==candidates[index])            return ;        for(int i = 0;i <= target/candidates[index];i++)        {            count[index] = i;                            solve(target - i*candidates[index],candidates,index+1,maxDep);        }    }};


0 0
原创粉丝点击