回溯算法模板

    void deep(vector<int>& candidates,int target,vector<int> &t,int sum)//参数
    {
        if(sum>=target)//终止条件
        {
            if(sum==target)    //终止操作
                res.push_back(t);
            return ;
        }
        for(int i=0;i<candidates.size();i++)//循环
        {
            if(t.size()!=0 && candidates[i]<t[t.size()-1]) //检查新的数据是否可用
                continue;
            t.push_back(candidates[i]);                    //母分支加入元素生出新的子分支
            deep(candidates,target,t,sum+candidates[i]);   //子分支进行下一次循环
            t.pop_back();                                  //删除元素返回母分支,等下一次再加新元素,生出另一个新的子分支
        }
    }


    void deep(//参数)
    {
        if(//终止条件)
        {
            //终止操作
            return ;
        }
        for(//循环)
        {
            //检查新的数据是否可用
                continue;
            //本分支加入元素生出新的子分支
            //进行下一次循环
            //删除元素返回本分支,等下一次再加新元素,生出另一个新的子分支
        }
    }
全部评论

相关推荐

01-07 15:50
四川大学 Java
看日出看日落:好好背八股,做算法。我身边跟你bg差不多的基本都大厂暑期
点赞 评论 收藏
分享
01-24 12:50
门头沟学院 C++
投票
菜狗二号:还有啥想的 指定国有行啊,去了就开始幸福美满的生活了,选华子不是折腾自己么,最终财富积累度是差不多的,但是幸福指数是相差甚远的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务