39. Combination Sum I && II
来源:互联网 发布:软件使用说明怎么写 编辑:程序博客网 时间:2024/06/03 12:35
public class Solution { public List<List<Integer>> combinationSum(int[] c, int t) { if(c == null || c.length == 0){ return null; } List<List<Integer>> result = new ArrayList<List<Integer>>(); List<Integer> list = new ArrayList<Integer>(); dfs(c, t, result, list, 0); return result; } public void dfs(int[] c, int t, List<List<Integer>> result, List<Integer> list, int index){ if(t == 0){ result.add(new ArrayList<Integer>(list)); return; } for(int i=index; i<c.length; i++){ if(t - c[i] >= 0){ list.add(c[i]); dfs(c, t-c[i], result, list, i); list.remove(list.size()-1); } } }}
传index是因为之前传过的就不用传了。
Each number in C may only be used once in the combination.
public class Solution { public List<List<Integer>> combinationSum2(int[] c, int t) { if(c == null || c.length == 0){ return null; } Arrays.sort(c); List<List<Integer>> result = new ArrayList<List<Integer>>(); List<Integer> list = new ArrayList<Integer>(); dfs(c, t, result, list, 0); return result; } public void dfs(int[] c, int t, List<List<Integer>> result, List<Integer> list, int index){ if(t == 0){ result.add(new ArrayList<Integer>(list)); return; } for(int i=index; i<c.length; i++){ if(i != index && c[i] == c[i-1]){ // 每次循环的时候,取没有取过的元素 continue; } if(t - c[i] >= 0){ list.add(c[i]); dfs(c, t-c[i], result, list, i+1); list.remove(list.size()-1); } } }}
阅读全文
0 0
- 39. Combination Sum I && II
- Combination Sum I, II
- Combination Sum I&II Pernutation I&II
- Leetcode Combination Sum I & II
- 【LeetCode】Combination Sum I && II
- leetcode Combination Sum I &II
- LeetCode - Combination Sum I && II
- Combination Sum I/II - Leetcode
- leetcode:Combination Sum(I,II)
- LeetCode | Combination Sum I,II
- Combination Sum I,II,III
- Combination sum I, II,III && Combination
- 39. Combination Sum && 40. Combination Sum II
- 39. Combination Sum &&40. Combination Sum II
- leetCode刷题归纳-backtracking(39. Combination Sum I && II)
- LeetCode题解:Combination Sum I and II
- LeetCode Solutions : Combination Sum I & II
- Combination Sum I,II,Divide Two Integers
- 互联网业务场景下消息队列架构
- 实现了一个AOI模块
- 剑指offer 39---求二叉树的深度 && 输入一颗二叉树的根节点,判断该树是不是平衡二叉树
- 648. Replace Words
- CodeForces
- 39. Combination Sum I && II
- find the mincost rout
- HDU 4960 Another OCD Patient (dp)
- Echarts学习之路 —— echarts介绍
- trait特性
- std::priority_queue 优先队列
- Android高级控件之ListView的优化以及下拉刷新页面
- 组合查询和存储过程
- 从对象和函数(或称构造函数)两个维度理解js中的函数