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

p131 求和为给定值的组合(leetcode 39)

时间:2020-04-15 18:37:51      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:tco   com   color   tor   最小值   date   示例   integer   leetcode   

一:解题思路

Time:O(n^(target/min)),Space:O(target/min) ,其中n为数组长度,min是数组中的最小值。

二:完整代码示例 (C++版和Java版)

C++:

class Solution 
{
private:
    void comSum(vector<int>& nums, int start, int target, vector<int>& elem, vector<vector<int>>& result)
    {
        if (target == 0)
        {
            result.push_back(elem);
            return;
        }
        if (target < 0) return;

        for (int i = start; i < nums.size(); i++)
        {
            elem.push_back(nums[i]);
            comSum(nums,i,target-nums[i],elem,result);
            elem.pop_back();
        }
    }
public:
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) 
    {
        vector<int> elem;
        vector<vector<int>> result;
        comSum(candidates,0,target,elem,result);

        return result;
    }
};

Java:

class Solution 
    {
        private  void comSum(int[] nums,int start,int target,List<Integer> elem,List<List<Integer>> result)
        {
               if(target==0)
               {
                   result.add(new ArrayList<>(elem));
                   return;
               }
               if(target<0) return;
               
               for(int i=start;i<nums.length;i++)
               {
                   elem.add(nums[i]);
                   comSum(nums,i,target-nums[i],elem,result);
                   elem.remove(elem.size()-1);
               }
        }
        
        public List<List<Integer>> combinationSum(int[] candidates, int target) 
        {
               List<Integer> elem=new ArrayList<>();
               List<List<Integer>> result=new ArrayList<>();
               
               comSum(candidates,0,target,elem,result);
               
               return result;
        }
    }

 

p131 求和为给定值的组合(leetcode 39)

标签:tco   com   color   tor   最小值   date   示例   integer   leetcode   

原文地址:https://www.cnblogs.com/repinkply/p/12706643.html

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