zoukankan      html  css  js  c++  java
  • 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 };
     
  • 相关阅读:
    Spring常用注解
    mybatis注解映射的简单分类
    Java框架中各层作用简述
    maven中groupId和artifactId的含义
    mybatis缓存
    防盗链的基本原理
    将部分字符串转化成JsonArray
    风螺旋线的进入
    3D转弯保护区长啥样?
    风螺旋线公切线的算法
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/10266937.html
Copyright © 2011-2022 走看看