LeetCode39.组合总和 JavaScript

Posted 小李HH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode39.组合总和 JavaScript相关的知识,希望对你有一定的参考价值。

给定一个无重复元素的数组 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的主要内容,如果未能解决你的问题,请参考以下文章

leetcode-----39. 组合总和

leetcode39.组合总和

LeetCode[39]: 组合总和

Leetcode 39 组合总和(回溯算法解题)

递归与回溯6:LeetCode39组合总和(可重复使用)

leetcode 39. 组合总和---回溯篇2