LeetCode——Combination Sum II
来源:互联网 发布:python自动化工作 编辑:程序博客网 时间:2024/05/22 06:23
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.
- Elements in a combination (a1, a2, … , ak) must be in non-descending order. (ie, a1 ≤ a2 ≤ … ≤ ak).
- 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: [1, 7]
[1, 2, 5]
[2, 6]
[1, 1, 6]
与之前一题的区别在于每个数字只能使用一次。故需在递归的时候直接使用下一个数字。
public class CombinationSumII {public static void main(String[] args) {List<List<Integer>> list = new CombinationSumII().combinationSum2(new int[]{10,1,2,7,6,1,5},8);for(List<Integer> li : list){for(Integer i : li)System.out.print(i + "\t");System.out.println();}} private List<Integer> list = new ArrayList<Integer>();private List<List<Integer>> result = new ArrayList<List<Integer>>();public List<List<Integer>> combinationSum2(int[] num, int target) {if(num.length == 0)return result;Arrays.sort(num);dfs(num,target,0);return result;}public void dfs(int[] candidates,int target,int index){if(target < 0)return;if(target == 0){result.add(new ArrayList<Integer>(list));return;}for(int i=index;i<candidates.length;i++){if(i>index && candidates[i] == candidates[i-1])continue;list.add(candidates[i]);dfs(candidates,target-candidates[i],i+1);list.remove(list.size()-1);}}}
0 0
- LeetCode——Combination Sum II
- leetcode——Combination Sum II
- leetcode 040 —— Combination Sum II
- LeetCode题解——Combination Sum II
- leetcode——Combination Sum II
- LeetCode: Combination Sum II
- LeetCode: Combination Sum II
- [LeetCode]Combination Sum II
- LeetCode Combination Sum II
- [Leetcode] Combination Sum II
- [LeetCode] Combination Sum II
- LeetCode Combination Sum II
- [Leetcode] Combination Sum II
- LeetCode: Combination Sum II
- leetcode Combination Sum II
- [LeetCode]Combination Sum II
- [leetcode] Combination Sum II
- LeetCode-Combination Sum II
- Web 应用程序常见漏洞 CSRF 的入侵检测与防范
- java类与对象的创建与使用(注意与c++的有些关键字不一样)
- Java web项目开发中,BigDecimal类型的数据,保留小数位数
- sql收缩数据库日志的几种办法
- Android Bluetooth蓝牙开发\蓝牙协议\蓝牙通信例子_Android支持蓝牙4.0版本_BLE开发
- LeetCode——Combination Sum II
- ListView的滚动事件onScrollListener详解
- 二维图像的离散傅立叶变换处理
- ARM连接器错误一则
- Sudoku Solver
- 图表汇集
- 兼容IE的placeholder
- Photoshop制作水晶立体字
- 病毒木马查杀实战第006篇:熊猫烧香之逆向分析(中)