Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.
Each number in C may only be used once in the combination.
Note:
All numbers (including target) will be positive integers.The solution set must not contain duplicate combinations.For example, given candidate set [10, 1, 2, 7, 6, 1, 5]
and target 8
, A solution set is:
回溯法 + 剪枝。 注意题目的与Combination Sum I的区别,这里的candidates是一个collection,元素有重复,但要求每个元素只能被使用一次。而I中的candidates是一个set,元素没有重复,但元素可以被重复使用。最终都是要求找到全部没有重复的组合。 解决如下两个问题即可:
为了确保答案中没有重复,除了像I中要确保元素升序排序之外,还要确保每次跳过后面与之重复的元素为了确保每个元素只使用一次,只需将传入下次递归中的开始下标加一即可。新闻热点
疑难解答