leetcode 39 组合总和

今天很奇怪,我用的是dfs,AC代码是

class Solution {
public:
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
        vector<vector<int>> result;
        vector<int> vec;
        dfs(result,vec,candidates,target,0,0);
        return result;
    }
    
    void dfs(vector<vector<int>>& result,vector<int> vec,vector<int> candidates,int target,int sum,int start){

            
        if(sum==target){
            result.push_back(vec);
            return;
        }
        else if(sum>target)
                return;
        for(int i=start;i<candidates.size();i++){
            
            vec.push_back(candidates[i]);
            dfs(result,vec,candidates,target,sum+candidates[i],i);
            vec.pop_back();
        }
    }
};

但是前面一直用下面的代码,过不了

 void dfs(vector<vector<int>>& result,vector<int> vec,vector<int> candidates,int target,int sum,int start){

            
        if(sum==target){
            result.push_back(vec);
            return;
        }
        for(int i=start;i<candidates.size();i++){
            sum +=candidates[i];  //这里
            if(sum>target)
                return;
            vec.push_back(candidates[i]);
            dfs(result,vec,candidates,target,sum,i);
        }
    }
};

后来发现我这样写会改变sum的值,下次要注意了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,349评论 0 33
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,044评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,466评论 2 59
  • 我奶奶做的包子特别好吃。 我和我哥最爱吃包子的馅是韭菜鸡蛋粉条,平时,我奶奶做包子,都是按照我们想吃什么馅做的。有...
    fcgchjcrcj阅读 1,683评论 0 1
  • 大清银币曲须龙,宣统三年大清银币的一种版别,这枚钱币的正面上下缘为满汉文“宣统三年”字样,在珠圈内铸有“大清银币”...
    古缘艺术阅读 4,699评论 0 0