LeetCode39.組合總和 JavaScript

給定一個無重複元素的數組 candidates和一個目標數 target ,找出 candidates中全部可使數字和爲target的組合。javascript

candidates中的數字能夠無限制重複被選取。java

說明:數組

全部數字(包括 target)都是正整數。 解集不能包含重複的組合。spa

示例 1:code

輸入: candidates = [2,3,6,7], target = 7, 所求解集爲: [[7],[2,2,3]]cdn

示例 2:ip

輸入: candidates = [2,3,5], target = 8, 所求解集爲: [[2,2,2,2],[2,3,3],[3,5]]get

答案參考:it

/** * @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
};
複製代碼

相關文章
相關標籤/搜索