首页 > 其他 > 详细

leetcode -39组合总数

时间:2019-03-02 23:14:43      阅读:215      评论:0      收藏:0      [点我收藏+]

搜就完事了,没想着优化。唉~太菜,给一个位置标记位置,然后通过该位置向该位置及该位置以下寻找,这样不存在什么重复回去查找问题。

如果总结大于目标值,回溯一下,如果不大于继续。

class Solution {
public:
    vector<vector<int>> res;
    vector<int> temp; 
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
    dfs(candidates,0,target,0);
    return res;
    }
    void dfs(vector<int> can,int sum,int tag,int start)
    {
        if(sum>tag)return;
        else if(sum==tag)
        {
        res.push_back(temp);
         return;}
        else 
        for(int i=start;i<can.size();i++)
        {
            temp.push_back(can[i]);
            dfs(can,sum+can[i],tag,i);
            temp.pop_back();
        }
    }
};

 

leetcode -39组合总数

原文:https://www.cnblogs.com/biubiuWham/p/10463393.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!