[Lintcode] Combination Sum II
来源:互联网 发布:微软软件win10下载 编辑:程序博客网 时间:2024/06/08 01:22
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.
Example
Given candidate set [10,1,6,7,2,1,5]
and target 8
,
A solution set is:
[ [1,7], [1,2,5], [2,6], [1,1,6]]
public class Solution { /** * @param num: Given the candidate numbers * @param target: Given the target number * @return: All the combinations that sum to target */ public List<List<Integer>> combinationSum2(int[] num, int target) { List<List<Integer>> res = new ArrayList<List<Integer>>(); Arrays.sort(num); helper(res, new ArrayList<Integer>(), num, target, 0); return res; } void helper(List<List<Integer>> res, List<Integer> list, int[] num, int target, int index) { if(target == 0) { res.add(new ArrayList(list)); return; } if(index >= num.length || target < 0) return; for(int i = index; i < num.length; i++) { list.add(num[i]); helper(res, list, num, target - num[i], i + 1);//i + 1 instead of index + 1 while(i + 1 < num.length && num[i] == num[i + 1]) i += 1;//在helper之后去重 //如果在helper之前去重的话,会漏掉结果集中存在重复元素的情况 // 1 1 2 5 6 7 10 -> 1 1 2 OK 在helper前去重漏掉的情况 // 1 1 2 5 6 7 10 -> 1 2 5, 1 2 5 KO 需要去重的情况 list.remove(list.size() - 1); } }}
0 0
- [Lintcode] Combination Sum II
- Combination Sum && Combination Sum II
- Combination Sum Combination Sum II
- lintcode:Combination Sum
- [Lintcode] Combination Sum
- [LintCode]Combination Sum
- Combination Sum (lintcode 135)
- Combination Sum II
- LeetCode: Combination Sum II
- LeetCode: Combination Sum II
- [LeetCode]Combination Sum II
- LeetCode Combination Sum II
- [Leetcode] Combination Sum II
- Combination Sum II
- [LeetCode] Combination Sum II
- LeetCode Combination Sum II
- [Leetcode] Combination Sum II
- Combination Sum II
- 职责链模式(java版)
- 1028. List Sorting (25)
- vue vue-socket.io 模块
- 集合框架总结(collections)
- Xcode奇淫巧技(二)——快捷键
- [Lintcode] Combination Sum II
- J2SE第三章面向对象设计思想
- 回溯法案列总结
- 浅谈Java中的深拷贝和浅拷贝
- 36个Android开发常用代码片段
- Loadrunner:集合点(Rendezvous)
- TCP阻塞控制详解
- Bmob数据库查询结果为null
- USACO 2009 Open Silver 3.Cow Digit Game简单博弈论