39. Combination Sum-dfs
来源:互联网 发布:方维生鲜o2o源码 编辑:程序博客网 时间:2024/06/03 06:53
Given a set of candidate numbers (C) (without duplicates) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.
The same repeated number may be chosen from C unlimited number of times.
Note:
- All numbers (including target) will be positive integers.
- The solution set must not contain duplicate combinations.
For example, given candidate set [2, 3, 6, 7]
and target 7
,
A solution set is:
[ [7], [2, 2, 3]]
同上一题的套路很像,但是不同的是允许重复
public class Solution { public List<List<Integer>> combinationSum(int[] candidates, int target) { Arrays.sort(candidates); ArrayList<List<Integer>> finalans = new ArrayList<List<Integer>>(); ArrayList<Integer> curans = new ArrayList<Integer>(); int index=0; if(candidates==null||candidates.length==0) return finalans; findAns(candidates,target,index,finalans,curans); return finalans; } private void findAns(int[] candidates,int target,int index,ArrayList<List<Integer>> finalans,ArrayList<Integer> curans){ if(target==0){ finalans.add(new ArrayList<Integer>(curans)); return; //return后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于想中断函数执行,返回调用函数处 //终止当前循环,也不执行remove了 //返回上一层循环 } if(target<0) return; for(int i=index;i<candidates.length;i++){ if(i>0 && candidates[i]==candidates[i-1]) continue;//如果遇到重复的元素 跳过不执行 curans.add(candidates[i]); int sum=target-candidates[i]; findAns(candidates,sum,i,finalans,curans);//这里依旧是传入i而不是i+1因为允许一个元素重复使用 curans.remove(curans.size()-1); } }}
0 0
- 39. Combination Sum-dfs
- 【DFS】Combination Sum
- 【DFS】Combination Sum II
- Leetcode dfs Combination Sum
- LeetCode Combination Sum DFS
- leetcode---combination-sum---dfs
- LeetCode--Combination Sum(DFS)
- LeetCode Combination Sum II DFS
- LeetCode Combination Sum III DFS
- leetcode---combination-sum-ii---dfs
- 【LeetCode】39. Combination Sum & 40. Combination Sum II分析及解法&DFS
- leetcode 39. Combination Sum DFS深度优先搜索
- 39. Combination Sum && 40. Combination Sum II
- 39. Combination Sum &&40. Combination Sum II
- DFS-leetcode Combination Sum I/I I
- LeetCode—**Combination Sum 利用DFS算法
- LeetCode-39-Combination Sum(DFS)-Medium
- [LeetCode]39.Combination Sum
- POJ NOI0105-40 数1的个数
- webView全屏播放的问题
- 嵌入式编程与PC编程有何区别
- Java 常用设计模式-代理模式Proxy
- 第38题
- 39. Combination Sum-dfs
- POJ 1076 Bowl 笔记
- Spring学习笔记之通过Spring和JDBC征服数据库
- scala数组的使用
- 求素数
- CTF自学网站
- Oracle 11.2.0.4 RAC修改SCAN IP
- SQLBrite库
- 商品展示