040 Combination Sum II 组合总和 II
给定候选号码数组 (C) 和目标总和数 (T),找出 C 中候选号码总和为 T 的所有唯一组合。
C 中的每个数字只能在组合中使用一次。
注意:
    所有数字(包括目标)都是正整数。
    解决方案集不能包含重复的组合。
例如,给定候选集合 [10, 1, 2, 7, 6, 1, 5] 和目标总和数 8,
可行的集合是:
[
  [1, 7],
  [1, 2, 5],
  [2, 6],
  [1, 1, 6]
]
详见:https://leetcode.com/problems/combination-sum-ii/description/
Java实现:
class Solution {
    public List<List<Integer>> combinationSum2(int[] candidates, int target) {
        List<List<Integer>> res=new ArrayList<List<Integer>>();
        List<Integer> out=new ArrayList<Integer>();
        Arrays.sort(candidates);
        helper(candidates,target,0,out,res);
        return res;
    }
    private void helper(int[] candidates, int target,int start,List<Integer> out,List<List<Integer>> res){
        if(target<0){
            return;
        }
        if(target==0){
            res.add(new ArrayList<Integer>(out));
        }else{
            for(int i=start;i<candidates.length;++i){
                if(i>start&&candidates[i]==candidates[i-1]){
                    continue;
                }
                out.add(candidates[i]);
                helper(candidates,target-candidates[i],i+1,out,res);
                out.remove(out.size()-1);
            }
        }
    }
}
参考:http://www.cnblogs.com/grandyang/p/4419386.html
040 Combination Sum II 组合总和 II的更多相关文章
- 【LeetCode】Combination Sum II(组合总和 II)
		这道题是LeetCode里的第40道题. 题目要求: 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. can ... 
- 216 Combination Sum III 组合总和 III
		找出所有可能的 k 个数,使其相加之和为 n,只允许使用数字1-9,并且每一种组合中的数字是唯一的.示例 1:输入: k = 3, n = 7输出:[[1,2,4]]示例 2:输入: k = 3, n ... 
- Leetcode之回溯法专题-40. 组合总和 II(Combination Sum II)
		Leetcode之回溯法专题-40. 组合总和 II(Combination Sum II) 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使 ... 
- Java实现 LeetCode 40 组合总和 II(二)
		40. 组合总和 II 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在 ... 
- 40. 组合总和 II  + 递归 + 回溯 + 记录路径
		40. 组合总和 II LeetCode_40 题目描述 题解分析 此题和 39. 组合总和 + 递归 + 回溯 + 存储路径很像,只不过题目修改了一下. 题解的关键是首先将候选数组进行排序,然后记录 ... 
- 组合总和 II
		组合总和 II 题目介绍 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates ... 
- [LeetCode] 377. Combination Sum IV 组合之和 IV
		Given an integer array with all positive numbers and no duplicates, find the number of possible comb ... 
- LeetCode 040 Combination Sum II
		题目要求:Combination Sum II Given a collection of candidate numbers (C) and a target number (T), find al ... 
- [LeetCode] 40. Combination Sum II 组合之和 II
		Given a collection of candidate numbers (candidates) and a target number (target), find all unique c ... 
随机推荐
- Mybatis-Generator_学习_01_mybatis-generator笔记
			一.generatorConfig.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ... 
- CDH5.12.1 安装部署
			###通过http://192.168.50.200:7180/cmf/login 访问CM控制台 4.CDH安装 4.1CDH集群安装向导 1.admin/admin登陆到CM 2.同意licens ... 
- 数据结构与算法(4)----->链表、二分搜索
			1. 链表的基本概念 链表和数组一样都是一种线性结构; 数组是一段连续的存储空间; 链表空间不一定保证连续,是临时分配的; 链表的分类 按方向: 单链表:每个节点只能通过next指针指向下一个节点; ... 
- setsockopt函数功能及参数详解
			Socket描述符选项[SOL_SOCKET] #include <sys/socket.h> int setsockopt( int socket, int level, int opt ... 
- poj 2420 A Star not a Tree?——模拟退火
			题目:http://poj.org/problem?id=2420 精度设成1e-17,做三遍.ans设成double,最后再取整. #include<iostream> #include ... 
- bzoj 1202 [HNOI2005]狡猾的商人——带偏移量的并查集
			题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1202 带偏移量的并查集. 注意先 find() 再调用 dis !!! 自己的对拍太水了. ... 
- POJ3259(ford判环)
			Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 39078 Accepted: 14369 Descr ... 
- Elasticsearch的前后台运行与停止(tar包方式)
			备注:在生产环境中,往往一般用后台来运行.jps查看. 1.ES的前台运行 [hadoop@djt002 elasticsearch-2.4.3]$ pwd/usr/local/elasticsear ... 
- Stored Procedures CASE 用法错误
			)) ) select @type=[type] from sys.objects with(nolock) where name=@ObjectName case @typ ... 
- java反射机制(转)
			一.什么是反射机制 简单的来说,反射机制指的是程序在运行时能够获取自身的信息.在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息. 二.哪里用到反射机制 ... 
