• Combination-Sum I


    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]

    Solution: Sort & Recursion.

     1 class Solution {
     2 public:
     3     vector<vector<int> > res;
     4     void combinationSum(vector<int> &candidates, int target, vector<int> &com, int start)
     5     {
     6         if(target == 0) {
     7             res.push_back(com);
     8             return;
     9         }
    10         for(int i = start; i < candidates.size() && target >= candidates[i]; i++) {
    11             com.push_back(candidates[i]);
    12             combinationSum(candidates, target-candidates[i], com, i); // start = i;
    13             com.pop_back();
    14         }
    15     }
    16     
    17     vector<vector<int> > combinationSum(vector<int> &candidates, int target) {
    18         sort(candidates.begin(), candidates.end());
    19         vector<int> com;
    20         combinationSum(candidates, target, com, 0);
    21         return res;
    22     }
    23 };
  • 相关阅读:
    《仔仔细细分析Ext》 第N2章 GridPanel的小难点 第一节 每条数据后面跟随几个操作按钮
    TextField输入验证
    Ext.FormPanel 及控件横排显示
    备份
    重写
    this关键字
    TestCircle程序分析
    java方法重载
    static关键字
    super关键字
  • 原文地址:https://www.cnblogs.com/zhengjiankang/p/3646346.html
Copyright © 2020-2023  润新知