zoukankan      html  css  js  c++  java
  • leetcode 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]
    ]

    思路:回溯法

     1 class Solution {
     2     void combinationSum1(vector<int> candidates, int target, vector<vector<int> > &res, vector<int> &v, int len, int begin) {
     3         if (target == 0) {
     4             res.push_back(v);
     5             return ;
     6         }
     7         for (int i = begin; (i < len) && target >= candidates[i]; i++) {
     8             v.push_back(candidates[i]);
     9             combinationSum1(candidates, target - candidates[i], res, v, len, i);
    10             v.pop_back();
    11         }
    12         
    13     }
    14 public:
    15     vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
    16         sort(candidates.begin(), candidates.end());
    17         vector<vector<int> > res; 
    18         vector<int> v;
    19         int len = candidates.size();
    20         combinationSum1(candidates, target, res, v, len, 0);
    21         return res;
    22     }
    23 }; 
  • 相关阅读:
    Linux LAMP架构搭建
    Linux 系统版本查询
    Linux 安装本地 yum源
    Linux 虚拟机安装vmware tools
    随记分页码
    flexigrid 修改json格式
    Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案
    web api 文档声明
    android UI
    Sending HTML Form Data
  • 原文地址:https://www.cnblogs.com/qinduanyinghua/p/11429513.html
Copyright © 2011-2022 走看看