【LeetCode-40】Combination Sum II
来源:互联网 发布:随机抽取软件 编辑:程序博客网 时间:2024/06/05 02:22
这道题运用dfs(深度优先搜索的方法)
public class CombinationSumII {List<List<Integer>> ls = new ArrayList<List<Integer>>();List<Integer> temp = new ArrayList<Integer>();public List<List<Integer>> combinationSum2(int[] candidates, int target) {if(candidates == null || candidates.length == 0){return null;} if(target <= 0){return ls; } Arrays.sort(candidates); wideSearch(candidates,target,0); return ls; }//熟悉这种回溯方法(dfs)public void wideSearch(int[] candidates,int target,int begin){//计算当前的temp中的和int sum = 0;for(int i = 0;i < temp.size();i ++){sum += temp.get(i);}if(sum == target){ArrayList<Integer> newlist = new ArrayList<Integer>(temp); ls.add(newlist);}else if(sum > target){return;}else{for(int i = begin;i < candidates.length;i ++){if(candidates[i] <= target){temp.add(candidates[i]);wideSearch(candidates, target,i + 1);temp.remove(temp.size() - 1);//跳过重复的元素(自习捋一捋这里,挺迷惑人的)while(i < (candidates.length - 1) && candidates[i] == candidates[i + 1]){i ++;}}}}} }
0 0
- LeetCode(40) Combination Sum II
- [leetcode 40] Combination Sum II
- leetcode || 40、Combination Sum II
- leetcode 40: Combination Sum II
- Leetcode #40 Combination Sum II
- LeetCode(40) Combination Sum II
- LeetCode-40 Combination Sum II
- LeetCode 40: Combination Sum II
- leetcode 40:Combination Sum II
- Leetcode 40 - Combination Sum II
- 【leetcode】【40】Combination Sum II
- LeetCode 40 - Combination Sum II
- LeetCode(40)-Combination Sum II
- 【LeetCode-40】Combination Sum II
- LeetCode 40 Combination Sum II
- LeetCode-40:Combination Sum II
- Leetcode 40 Combination Sum II
- LeetCode #40: Combination Sum II
- 【转载】DataBinding
- iOS 开发常用的开源组件
- EventBus源码解读详细注释(1)register的幕后黑手
- 基于MFC编写Windows服务程序
- zoj 1092 moving tables
- 【LeetCode-40】Combination Sum II
- CSS3参考文档
- AnimationEvent事件问题
- block循环引用情况
- Cortex M3 NVIC与中断控制
- kettle 邮件 附件 smtp
- zoj1076 gene assembly
- webkit linux 方向键移动焦点
- IP协议的学习笔记_01 ---IP分片