• 39. Combination Sum


    Given a set of candidate numbers (candidates) (without duplicates) and a target number (target), find all unique combinations in candidates where the candidate numbers sums to target.

    The same repeated number may be chosen from candidates unlimited number of times.

    Note:

    • All numbers (including target) will be positive integers.
    • The solution set must not contain duplicate combinations.

    Example 1:

    Input: candidates = [2,3,6,7], target = 7,
    A solution set is:
    [
      [7],
      [2,2,3]
    ]
    

    Example 2:

    Input: candidates = [2,3,5], target = 8,
    A solution set is:
    [
      [2,2,2,2],
      [2,3,3],
      [3,5]
    ]

    和为目标数的组合,数可以重复使用

    C++:
     1 class Solution {
     2 public:
     3     vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
     4         vector<vector<int>> res ;
     5         vector<int> temp ;
     6         backtracking(candidates,res,temp,target,0) ;
     7         return res ;
     8     }
     9     
    10     void backtracking(vector<int> candidates ,vector<vector<int>>& res,vector<int>& temp,int target , int start){
    11         if(target == 0){
    12             res.push_back(temp) ;
    13             return ;
    14         }
    15         for(int i = start ; i < candidates.size() ; i++){
    16             if (candidates[i] <= target){
    17                 temp.push_back(candidates[i]) ;
    18                 backtracking(candidates,res,temp,target-candidates[i],i) ;
    19                 temp.pop_back() ;
    20             }
    21         }
    22     }
    23 };
     
  • 相关阅读:
    蛋疼的springboot web项目使用jetty容器运行
    freemark 异常
    系统中个别页面间断性跳转到登录页异常
    Spring Transaction 使用入门
    单例模式
    抽象工厂模式
    工厂模式
    设计模式
    关于ZK框架的onScroll事件的问题
    关于CheckStyle在eclipse出现的问题
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/10266937.html
Copyright © 2020-2023  润新知