https://leetcode-cn.com/problems/combination-sum/
题目
给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。
candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同,则两种组合是唯一的。
对于给定的输入,保证和为 target 的唯一组合数少于 150 个。
示例
1 | 输入: candidates = [2,3,6,7], target = 7 |
解:回溯搜索
思路
参考
将搜索的过程用树表达
以输入:candidates = [2, 3, 6], target = 8 为例:
以target为根节点,candidates里的数为叶子
- ▲:如果当前叶子到根节点求和>target,停止
- o:如果当前叶子到根节点求和=target,加入解集
- x:如果产生重复 剪枝
用递归实现以上逻辑
代码
1 | var combinationSum = (candidates, target){ |