码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode:39. Combination Sum(Medium)

时间:2018-01-07 14:11:45      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:解题思路   arraylist   problems   str   重复元素   color   pre   start   ring   

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)

标签:解题思路   arraylist   problems   str   重复元素   color   pre   start   ring   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!