40.组合总和 II
组合总和 II
给定一个候选人编号的集合 candidates 和一个目标数 target,找出 candidates 中所有可以使数字和为 target 的组合。
candidates 中的每个数字在每个组合中只能使用 一次。
注意:解集不能包含重复的组合。
示例 1:
输入:candidates = [10,1,2,7,6,1,5], target = 8
输出:[[1,1,6],[1,2,5],[1,7],[2,6]]
示例 2:
输入:candidates = [2,5,2,1,2], target = 5
输出:[[1,2,2],[5]]
提示:
- 1 <= candidates.length <= 100
- 1 <= candidates[i] <= 50
- 1 <= target <= 30
解析
与第 39 题类似,但每个数字只能用一次,且需要去重。
1 | |
关键去重逻辑:i > start && candidates[i] === candidates[i-1] 保证同一层递归中不会选择重复的数字,而不同层可以选相同值的不同元素。
40.组合总和 II
https://leetcode.lz5z.com/40.combination-sum-ii/