39.组合总和(回溯)

简介: 39.组合总和(回溯)

39. 组合总和 - 力扣(LeetCode) (leetcode-cn.com)

#回溯
class Solution:
    def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
        def dfs(target,ans,combine,idx):
            if idx == n:
                return
            if target == 0:
                ans.append(list(combine))
                return
            #跳过idx
            dfs(target,ans,combine,idx+1)
            #选择idx
            if target-candidates[idx] >= 0:
                combine.append(candidates[idx])
                dfs(target-candidates[idx],ans,combine,idx)
                combine.pop()
            
            
 
        n = len(candidates)
        ans = []
        combine=[]
        dfs(target,ans,combine,0)
        return ans
相关文章
|
6月前
|
算法 测试技术 C#
C++二分查找算法:包含每个查询的最小区间
C++二分查找算法:包含每个查询的最小区间
|
6月前
|
算法 测试技术 C#
区间合并|LeetCode2963:统计好分割方案的数目
区间合并|LeetCode2963:统计好分割方案的数目
|
1月前
【LeetCode 53】39.组合总和
【LeetCode 53】39.组合总和
37 0
|
1月前
LeetCode第39题(组合总和)
LeetCode第39题要求找出一个无重复元素整数数组中所有和为给定目标数的不同组合,可以使用回溯法解决。
51 0
|
6月前
|
人工智能 BI
经典问题之区间分组
经典问题之区间分组
|
6月前
|
算法 测试技术 C#
【并集查找 最大公约数 调和数】952. 按公因数计算最大组件大小
【并集查找 最大公约数 调和数】952. 按公因数计算最大组件大小
|
6月前
|
Java
leetcode-377:组合总和 Ⅳ
leetcode-377:组合总和 Ⅳ
38 0
|
6月前
|
Java
leetcode-40:组合总和 II
leetcode-40:组合总和 II
46 0
|
算法 索引
算法训练Day36|435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间
算法训练Day36|435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间
|
机器学习/深度学习 算法 安全
LeetCode - #40 组合总和 II
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。