[LeetCode]--39. Combination Sum
来源:互联网 发布:jdk 7u79 windows x32 编辑:程序博客网 时间:2024/06/08 10:21
public class Solution { public List<List<Integer>> combinationSum(int[] cands, int t) { Arrays.sort(cands); // sort candidates to try them in asc order List<List<List<Integer>>> dp = new ArrayList<>(); for (int i = 1; i <= t; i++) { // run through all targets from 1 to t List<List<Integer>> newList = new ArrayList(); // combs for curr i // run through all candidates <= i for (int j = 0; j < cands.length && cands[j] <= i; j++) { // special case when curr target is equal to curr candidate if (i == cands[j]) newList.add(Arrays.asList(cands[j])); // if current candidate is less than the target use prev results else for (List<Integer> l : dp.get(i-cands[j]-1)) { if (cands[j] <= l.get(0)) { List cl = new ArrayList<>(); cl.add(cands[j]); cl.addAll(l); newList.add(cl); } } } dp.add(newList); } return dp.get(t-1); }}
But, we’d best use backstracking algorithm!
A general approach to backtracking questions in Java (Subsets, Permutations, Combination Sum, Palindrome Partitioning)
Reference
https://discuss.leetcode.com/category/47/combination-sum
https://discuss.leetcode.com/topic/46161/a-general-approach-to-backtracking-questions-in-java-subsets-permutations-combination-sum-palindrome-partitioning
https://discuss.leetcode.com/topic/8200/iterative-java-dp-solution/2
0 0
- [LeetCode]39.Combination Sum
- LeetCode --- 39. Combination Sum
- LeetCode 39.Combination Sum
- [Leetcode] 39. Combination Sum
- Leetcode-39.Combination Sum
- LeetCode 39. Combination Sum
- [LeetCode]39. Combination Sum
- 39. Combination Sum LeetCode
- [leetcode] 39. Combination Sum
- leetcode 39. Combination Sum
- 【leetcode】 39. Combination Sum
- LeetCode 39. Combination Sum
- leetcode 39. Combination Sum
- LeetCode 39. Combination Sum
- LeetCode *** 39. Combination Sum
- LeetCode 39. Combination Sum
- leetcode 39. Combination Sum
- LeetCode - 39. Combination Sum
- mysql导入与导出.sql
- 集合
- linux tar命令
- 跑跑免费版
- 理解共轭先验
- [LeetCode]--39. Combination Sum
- 《Groovy程序设计》读书笔记之第一部分 groovy起步
- 匹配每一行以数字开头和以数字结尾的文本
- 《Groovy程序设计》读书笔记之第二部分 面向Java开发者的Groovy(上)
- android studio中gradle更新办法
- Linux信号SIGNAL详解
- usbview vs2015编译错误汇总
- AppWidget源码分析(2)---updateAppWidget过程分析.md
- C++的委托实现 笔记