zoukankan      html  css  js  c++  java
  • 39. Combination Sum

    一、题目

      1、审题

      2、分析:

        给出一个不重复的数字数组,一个目标数字target,求数组中的元素组合所得的和为 target 的所有组合,其中数组中的元素可以多次使用。

    二、解答

      1、思路:

        利用递归算法求得所有组合。

      

    public class Solution {
        public List<List<Integer>> combinationSum(int[] candidates, int target) {
            List<List<Integer>> targetList = new LinkedList<List<Integer>>();
            Arrays.sort(candidates);
    
            getResult(targetList, new ArrayList<Integer>(), candidates, target, 0);
            return targetList;
        }
        
        public void getResult(List<List<Integer>> targetList, 
                ArrayList<Integer> curreyList, int[] candidates, int target, int start) { // target > 0 if(target > 0) { for(int i = start; i < candidates.length && target >=candidates[i]; i++) { curreyList.add(candidates[i]); getResult(targetList, curreyList, candidates, target-candidates[i], i); curreyList.remove(curreyList.size()-1); } } // 合适 else if(target == 0) { targetList.add(new ArrayList<Integer>(curreyList));         // add(new ArrayList<Integer>(resultList) : 复制 resultList 的值 // add((resultList)): 添加 resultList 指针,其中的 resultList 的值会变化 } } }
  • 相关阅读:
    49.把字符串转发为整数(python)
    48.不用加减乘除做加法(python)
    47.1+2+3+...+n(python)
    46.孩子们的游戏(python)
    45.扑克牌顺子(python)
    44.翻转单词序列(python)
    43.左旋转字符串(python)
    42.和为S的两个数字(python)
    41.和为S的连续整数序列(python)
    39.平衡二叉树(python)
  • 原文地址:https://www.cnblogs.com/skillking/p/9580797.html
Copyright © 2011-2022 走看看