39

/**
 * @param {number[]} candidates
 * @param {number} target
 * @return {number[][]}
 */
var combinationSum = function(candidates, target) {
    //if (!candidates || !candidates.length) return []
    var res = []
    function dfs(candidates, sub, cur, start){
        if(cur < 0) {
            return
        }else if (cur === 0) {
            return res.push(sub.slice())
        } else{
            for(var i = start; i < candidates.length; i++){
                sub.push(candidates[i])
                dfs(candidates, sub, cur - candidates[i], i)   
                sub.pop()
            }
        }
    }
    dfs(candidates, [], target, 0) 
    
    return res
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容