题目链接
英文链接:https://leetcode.com/problems/combination-sum/
中文链接:https://leetcode-cn.com/problems/combination-sum/
题目详述
给定一个无重复元素的数组 candidates
和一个目标数 target
,找出 candidates
中所有可以使数字和为 target
的组合。
candidates
中的数字可以无限制重复被选取。
说明:
- 所有数字(包括
target
)都是正整数。 - 解集不能包含重复的组合。
示例 1:
1 | 输入: candidates = [2,3,6,7], target = 7, |
示例 2:
1 | 输入: candidates = [2,3,5], target = 8, |
题目详解
DFS,回溯。
- 每次尝试把当前元素添加入临时链表中,target 减去当前元素,然后把新的 target 传入下一层。因为元素允许重复使用,故传入的起始位置为当前位置 i。
- 递归的终止条件是
target < 0
或target == 0
。 target < 0
不满足条件,剪枝。target == 0
满足条件,将临时结果拷贝一份加入结果集。
1 | public class LeetCode_00039 { |