美文网首页
LeetCode39.组合总和 JavaScript

LeetCode39.组合总和 JavaScript

作者: LHH大翰仔仔 | 来源:发表于2019-02-18 11:31 被阅读3次

    给定一个无重复元素的数组 candidates和一个目标数 target ,找出 candidates中所有可以使数字和为target的组合。

    candidates中的数字可以无限制重复被选取。

    说明:

    所有数字(包括 target)都是正整数。
    解集不能包含重复的组合。

    示例 1:

    输入: candidates = [2,3,6,7], target = 7,
    所求解集为:
    [[7],[2,2,3]]

    示例 2:

    输入: candidates = [2,3,5], target = 8,
    所求解集为:
    [[2,2,2,2],[2,3,3],[3,5]]

    答案参考:

    /**
     * @param {number[]} candidates
     * @param {number} target
     * @return {number[][]}
     */
    var combinationSum = function(candidates, target) {
        var item=[],path=[];
        no_repetition(candidates,target,0,item,path);
        function no_repetition(candidates,target,it,item,path){
            if(target<0)
                return;
            if(target==0){
                path=path.slice()
                item.push(path);
                return
            }
            for(var i=it;i<candidates.length;i++){
                path.push(candidates[i]);
                no_repetition(candidates,target-candidates[i],i,item,path)
                path.pop()
            }
        }    
        return item
    };
    
    欢迎关注

    相关文章

      网友评论

          本文标题:LeetCode39.组合总和 JavaScript

          本文链接:https://www.haomeiwen.com/subject/fofaeqtx.html