美文网首页
39. Combination Sum

39. Combination Sum

作者: 羲牧 | 来源:发表于2020-07-06 09:12 被阅读0次

递归法

class Solution:
    def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
        res = []
        candidates = sorted(candidates)
        self.combinationSumDFS(candidates, target, 0, res, [])
        return res
    
    def combinationSumDFS(self, candidates, target, start, res, path):
        if target < 0:
            return
        if target == 0:
            print('path', path)
            res.append(path)
            return;
        for i in range(start, len(candidates)):
            if candidates[i] > target:
                return
            self.combinationSumDFS(candidates, target-candidates[i], i, res,path+[candidates[i]])

        

回溯思想
与上述代码类似,但是需要注意path的深拷贝和浅拷贝问题

class Solution:
    def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
        res = []
        candidates = sorted(candidates)
        self.combinationSumDFS(candidates, target, 0, res, [])
        return res
    
    def combinationSumDFS(self, candidates, target, start, res, path):
        if target < 0:
            return
        if target == 0:
            print('path,i', path,start)
            res.append(list(path))
            return;
        for i in range(start, len(candidates)):
            if candidates[i] > target:
                return
            path.append(candidates[i])
            self.combinationSumDFS(candidates, target-candidates[i], i, res,path)
            path.pop()

相关文章

  • LeetCode 39. Combination Sum

    10-13 LeetCode 39. Combination Sum Combination Sum Descri...

  • [leetcode -- backtracking] 39.Co

    39. Combination Sum 题目: Given a set of candidate numbers ...

  • 组合总和

    Algorithm 39. Combination Sum[https://leetcode.com/proble...

  • 39. 组合总和

    39. 组合总和 https://leetcode-cn.com/problems/combination-sum...

  • Leetcode 【39、40、77】

    问题描述:【DFS、DP】39. Combination Sum 解题思路: 这道题和 Leetcode 【DP】...

  • [BackTracking]39. Combination Su

    分类:BackTracking/DFS 时间复杂度: O(n^2) 39. Combination Sum Giv...

  • 39. Combination Sum

    给一组候选数字(C)(没有重复)并给一个目标数字(T),找出 C 中所有唯一的组合使得它们的和为 T。 可以从 C...

  • 39. Combination Sum

    注意,sort的时候,千万不要直接改变list,要用临时数组来代替;因为递归过程中后面还要pop_back; 解法...

  • 39. Combination Sum

    Given a set of candidate numbers (candidates) (without du...

  • 39. Combination Sum

    题目分析 找出一个数组若干数的和等于 target 的所有可行解,每个元素可以重复任意次使用 + 回溯法 代码

网友评论

      本文标题:39. Combination Sum

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