Algorithms—39.Combination Sum
来源:互联网 发布:商业会计的软件 编辑:程序博客网 时间:2024/05/22 08:27
思路:动态规划。
public class Solution { public List<List<Integer>> combinationSum(int[] candidates, int target) { Arrays.sort(candidates); return f(candidates, target, new HashMap<Integer, List<List<Integer>>>()); } public List<List<Integer>> f(int[] candidates, int target,HashMap<Integer, List<List<Integer>>> map){ if (map.get(target)==null) { List<List<Integer>> ans=new ArrayList<List<Integer>>();if (target<candidates[0]) {return ans;}for (int i = 0; i < candidates.length; i++) {int k=candidates[i];if (k<target) {List<List<Integer>> list=f(candidates,target-k,map);if (list!=null&&list.size()!=0) {for (int j = 0; j < list.size(); j++) {if (list.get(j).get(0)>=k) {List<Integer> l=new ArrayList<Integer>();l.add(k);l.addAll(list.get(j));ans.add(l);}}}}else if (k==target) {List<Integer> l=new ArrayList<Integer>();l.add(k);ans.add(l);}else {break;}}map.put(target, ans);return ans;} return map.get(target); }}
0 0
- Algorithms—39.Combination Sum
- LeetCode-algorithms 39. Combination Sum
- Algorithms—216.Combination Sum III
- Algorithms—40.Combination Sum II
- 39. Combination Sum && 40. Combination Sum II
- 39. Combination Sum &&40. Combination Sum II
- [LeetCode-Algorithms-40] "Combination Sum II" (2017.11.29-WEEK13)
- [LeetCode-Algorithms-39] "Combination Sum" (2017.11.29-WEEK13)
- Algorithms—15.3Sum
- Algorithms—18.4Sum
- [LeetCode]39.Combination Sum
- LeetCode --- 39. Combination Sum
- LeetCode 39.Combination Sum
- [Leetcode] 39. Combination Sum
- 39. Combination Sum
- 39. Combination Sum
- Leetcode-39.Combination Sum
- LeetCode 39. Combination Sum
- C#Unicode编码不可逆,Default也不可逆
- 编程之美----3.5最短摘要的生成
- google.com 还会换IP
- CheckBoxAndRadio应用
- Delphi类里面的方法和类型定义不影响创建实例的大小
- Algorithms—39.Combination Sum
- 给敏捷团队中的架构师的10个建议
- 一道面试题
- 腾迅不敢发放的一个QQ号码
- 未来的十倍股在哪里
- [DS][Hash][PAT][Hashing Hard Version]
- 留住你的用户:8款第三方移动推送服务
- 【CCF】Z字形扫描
- AWK简介