Combination Sum (Java)
来源:互联网 发布:张家口 知乎 编辑:程序博客网 时间:2024/06/05 15:49
Given a set of candidate numbers (C) 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.
- Elements in a combination (a1, a2, … , ak) must be in non-descending order. (ie, a1 ≤ a2 ≤ … ≤ ak).
- 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]
Source
public class Solution { public List<List<Integer>> combinationSum(int[] candidates, int target) { List<List<Integer>> st = new ArrayList<List<Integer>>(); List<Integer> a = new ArrayList<Integer>(); if(candidates.length == 0) return st; int sum = 0; int start = 0; Arrays.sort(candidates); //这道题的测试数据有乱序的 dfs(start, sum, candidates, target, st, a); return st; } public void dfs(int start, int sum, int[] candidates, int target, List<List<Integer>> st, List<Integer> a){ if(sum > target) return; if(sum == target){ st.add(new ArrayList<Integer>(a)); return; } for(int i = start; i < candidates.length; i++){ a.add(candidates[i]); dfs(i, sum + candidates[i], candidates, target, st, a); //注意sum是要随着dfs变化的 a.remove(a.size() - 1); } }}
Test
public static void main(String[] args){ int[] candidates = {2,3,6,7}; int target = 7; System.out.println(new Solution().combinationSum(candidates, target)); }
0 0
- [Leetcode] Combination Sum (Java)
- Combination Sum Java
- Combination Sum II Java
- Combination Sum (Java)
- [LeetCode][Java] Combination Sum
- (java)Combination Sum II
- LeetCode : Combination Sum [java]
- leetcode:Combination Sum 【Java】
- Leetcode Java-Combination Sum
- [Leetcode] Combination Sum II (Java)
- Combination Sum III Leecode Java
- [LeetCode][Java] Combination Sum II
- [leetcode-39]Combination Sum(java)
- LeetCode : Combination Sum II [java]
- (Java)LeetCode-39. Combination Sum
- leetcode-java-39. Combination Sum
- [LeetCode-Java]39. Combination Sum
- [leetcode]39. Combination Sum(Java)
- IOS8通知栏显示快捷开关蜂窝数据,快捷开关VPN,快捷开关定位位置
- 使用Inspectors(巡视器)
- oracle导入dmp文件格式
- session的removeAttribute()和invalidate()的区别
- MVCC(Multi-Version Concurrency Control)多版本并发控制
- Combination Sum (Java)
- 【第16篇】通过fastjson去解析json数组数据
- jQuery操作DOM元素
- jQuery使用之(四)处理页面的表单元素
- 什么是javabean
- Saving HDU 贪心
- 使用Uploadify 时,同时使用了jQuery.Validition 验证控件时,在IE11上出现JS缺少对象错误。
- 解决 easyui iframe 不可见下刷新卡死 的情况
- 被调用函数 ajax 同步 返回值 主函数显示返回值总是undefined