首页 > 其他 > 详细

LeetCode:39. Combination Sum(Medium)

时间:2018-01-07 13:07:46      阅读:183      评论:0      收藏:0      [点我收藏+]

1. 原题链接

https://leetcode.com/problems/combination-sum/description/

2. 题目要求

给定一个整型数组candidates[ ]和目标值target,找出数组中累加之后等于target的所有元素组合

注意:(1)数组中的每一个元素可以重复用;(2)数组中不存在重复元素;(3)数组中都是正整数

3. 解题思路

采用迭代的方法检验所有元素组合

4. 代码实现

 1 import java.util.ArrayList;
 2 import java.util.List;
 3 
 4 public class CombinationSum39 {
 5     public static void main(String[] args) {
 6         CombinationSum39 cs = new CombinationSum39();
 7         int[] candidates = {2,3,6,7};
 8         for (List l1:cs.combinationSum(candidates,7)){
 9             System.out.println(l1.toString());
10             System.out.println();
11         }
12 
13     }
14     public List<List<Integer>> combinationSum(int[] candidates, int target) {
15         List<List<Integer>> result = new ArrayList<List<Integer>>();
16         combinationSum(result,new ArrayList<Integer>(),candidates,target,0);
17         return result;
18     }
19     public void combinationSum(List<List<Integer>> result, List<Integer> cur, int[] candidates, int target,int start) {
20         if (target > 0) {
21             for (int i = start;i < candidates.length;i++) { 
22                 cur.add(candidates[i]);
23                 combinationSum(result, cur, candidates, target-candidates[i],i);
24                 cur.remove(cur.size() - 1);
25             }
26         }
27         if (target == 0)
28             result.add(new ArrayList<Integer>(cur));
29     }
30 }

 

LeetCode:39. Combination Sum(Medium)

原文:https://www.cnblogs.com/huiAlex/p/8227434.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!