zoukankan      html  css  js  c++  java
  • Combination Sum

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

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

    Note:

    • All numbers (including target) will be positive integers.
    • Elements in a combination (a1, a2, … , ak) must be in non-descending order. (ie, a1 ≤ a2 ≤ … ≤ ak).
    • The solution set must not contain duplicate combinations.

    For example, given candidate set 2,3,6,7 and target 7
    A solution set is: 
    [7] 
    [2, 2, 3] 

    Analyse: First sort the vector, then recursively invoke the dfs function.

    Runtime: 16ms.

     1 class Solution {
     2 public:
     3     vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
     4         sort(candidates.begin(), candidates.end());
     5         vector<vector<int> >result;
     6         vector<int> temp;
     7         
     8         dfs(temp, candidates, target, 0, result);
     9         return result;
    10     }
    11     
    12     void dfs(vector<int> &temp, vector<int> &candidates, int diff, int start, vector<vector<int> > &result){
    13         if(diff == 0){
    14             result.push_back(temp);
    15             return ;
    16         }
    17         
    18         for(int i = start; i < candidates.size(); i++){
    19             if(diff < candidates[i]) return;
    20             
    21             temp.push_back(candidates[i]);
    22             dfs(temp, candidates, diff - candidates[i], i, result);
    23             temp.pop_back();
    24         }
    25     }
    26 };
  • 相关阅读:
    vue-fullcalendar插件
    iframe 父框架调用子框架的函数
    关于调试的一点感想
    hdfs 删除和新增节点
    hadoop yarn 实战错误汇总
    Ganglia 安装 No package 'ck' found
    storm on yarn(CDH5) 部署笔记
    spark on yarn 安装笔记
    storm on yarn安装时 提交到yarn失败 failed
    yarn storm spark
  • 原文地址:https://www.cnblogs.com/amazingzoe/p/4678438.html
Copyright © 2011-2022 走看看