给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。
candidates 中的数字可以无限制重复被选取。
说明:
所有数字(包括 target)都是正整数。
解集不能包含重复的组合。
示例 1:
输入:candidates = [2,3,6,7], target = 7,
所求解集为:
[
[7],
[2,2,3]
]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/combination-sum
题解
回溯
def threeSum( nums,target):
path = []
re = []
l = len(nums)
def back(nums,target,index):
if sum(path)==target:
#print("path",path)
re.append(path[:])
#print("re",re)
return
elif sum(path)>target:
return
for i in range(index,l):
path.append(nums[i])
back(nums,target,i)
path.pop()
back(nums,target,0)
#print(re)
return re
该博客介绍了一个使用回溯法解决LeetCode上的组合总和问题的Python实现。给定一个无重复元素的数组和一个目标数,任务是找到所有可能的组合,使得数组中的数字相加等于目标数。示例展示了当数组为[2, 3, 6, 7]且目标数为7时,解集为[[7], [2, 2, 3]]。博客内容主要围绕回溯策略展开,通过递归遍历所有可能的子集来寻找解决方案。

566

被折叠的 条评论
为什么被折叠?



