python代码实现给定一个**无重复元素**的数组 candidates 和一个目标数 target , 找出 candidates 中所有可以使数字和为 target 的组合。
时间: 2024-09-09 15:12:17 浏览: 71
java代码-给出一组候选数\ C C 和一个目标数\ T T,找出候选数中起来和等于\ T T 的所有组合。 \ C C 中的每个数字在一个组合中只能使用一次
在Python中,你可以使用回溯法(backtracking)来解决这个问题。回溯是一种用于解决组合、排列等搜索问题的算法,尤其适合这类需要穷举所有可能性的问题。以下是简单的代码实现:
```python
def combinationSum(candidates, target):
def backtrack(start=0, curr_sum=0):
if curr_sum == target:
result.append(nums[start:])
elif curr_sum < target and start < len(nums):
for i in range(start, len(nums)):
if nums[i] + curr_sum <= target:
backtrack(i+1, curr_sum+nums[i])
result = []
nums = sorted(candidates)
backtrack()
return result
# 示例
candidates = [2, 3, 6, 7]
target = 7
print(combinationSum(candidates, target)) # 输出:[[2, 2, 3], [7]]
阅读全文