1. 程式人生 > >【LeetCode】39. 組合總和

【LeetCode】39. 組合總和

題目描述

給定一個無重複元素的陣列 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。

candidates 中的數字可以無限制重複被選取。

說明:

  • 所有數字(包括 target)都是正整數。
  • 解集不能包含重複的組合。 

示例 1:

輸入: candidates = [2,3,6,7], target = 7,
所求解集為:
[
  [7],
  [2,2,3]
]

示例 2:

輸入: candidates = [2,3,5], target = 8,
所求解集為:
[
  [2,2,2,2],
  [2,3,3],
  [3,5]
]

程式碼

class Solution {
public:
    void recursion(vector<int> candidates, int start, int target, vector<int> v, vector<vector<int>>& res){
        if(target <0){
            //越界,直接返回
            return;
        }
        if(target == 0){
            //找到一個解,將解v放入res中
            res.push_back(v);
            return;
        }
        for(int i=start; i<candidates.size(); i++){
            v.push_back(candidates[i]);
            recursion(candidates,i,target-candidates[i],v,res);
            //返回後先將candidates[i]彈出
            v.pop_back();
        }
    }
    
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
        vector<vector<int>> res;
        vector<int> v;
        recursion(candidates,0,target,v,res);
        return res;
    }
};

相關推薦

LeetCode39. 組合總和

題目描述 給定一個無重複元素的陣列 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。 candidates 中的數字可以無限制重複被選取。 說明: 所有數字(包括 target)都是正整數。

LeetCode39. 組合總和 結題報告 (C++)

題目描述: 給定一個無重複元素的陣列 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。 candidates 中的數字可以無限制重複被選取。 說明: 所有數字(包括 target)都是

LeetCode216. 組合總和 III 結題報告 (C++)

原題地址:https://leetcode-cn.com/problems/combination-sum-iii/submissions/ 題目描述: 找出所有相加之和為 n 的 k 個數的組合。組合中只允許含有 1 - 9 的正整數,並且每種組合中不存在重複的數字。 說明: 所有

LeetCode40. 組合總和 II 結題報告 (C++)

題目描述: 給定一個數組 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。 candidates 中的每個數字在每個組合中只能使用一次。 說明: 所有數字(包括目標數)都是正整數。

LeetCode39. Combination Sum(C++)

地址:https://leetcode.com/problems/combination-sum/ 題目: Given a set of candidate numbers (candidates) (without duplicates) and a target number (

leetcode python 39. 組合總和(中等,陣列,遞迴)

給定一個無重複元素的陣列 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。 candidates 中的數字可以無限制重複被選取。 說明:所有數字(包括 target)都是正整數。解集不能包含重複的組合。 示例 1

LeetCode筆記——39組合總和

題目: 給定一個無重複元素的陣列 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。 candidates 中的數字可以無限制重複被選取。 說明: 所有數字(包括 target)都是正整數。

LeetCode175. 組合兩個表

題目 表1: Person 列名 型別 PersonId int FirstName varchar LastName varchar PersonId是上表主鍵 表2: A

LeetCode112. 路徑總和

給定一個二叉樹和一個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。 說明: 葉子節點是指沒有子節點的節點。 示例:  給定如下二叉樹,以及目標和 sum = 22, 5 / \

LeetCode 39. 組合總和(Combination Sum)

gin -s ati div span i++ 不能 ida 思路 題目描述 給定一個無重復元素的數組 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。 candidates 中的數字可以

Leetcode學習筆記 39 組合總和

轉載自:https://www.unclegem.cn/2018/09/10/Leetcode學習筆記-39-組合總和/ 題目: 給定一個無重複元素的陣列 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。 c

leetcode------39--組合總和

給定一個無重複元素的陣列 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。 candidates 中的數字可以無限制重複被選取。

LeetcodeDFS 112. Path Sum / 路經總和

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.

LeetCodePath Sum(路徑總和)

這道題是LeetCode裡的第112道題。是我在學資料結構——二叉樹的時候碰見的題。 題目要求: 給定一個二叉樹和一個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。 說明: 葉子節點是指沒有子節點的節點。 示例: 

LeetCode17. 電話號碼的字母組合

題目描述 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 示例 輸入:“23” 輸出:[“ad”, “ae”

Leetcode:39. 組合總和II

class Solution { public:     vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {         sort(candida

leetcode 39:組合總和

         同樣是一個遞迴的題,類似與leetcode17。首先將輸入的陣列排序,這樣能夠保證先從小的數開始取,為了使得結果也是有序的,不至於重複,取一個數a要看是否大於等於已經取的數。 比如candidates=[2,3,7],target=14 如果已經取了

LeetCode回溯法 backtracking(共39題)

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica } 【10】Regular Expression Matching  【17】Letter Combinations of a Phone Number  【

LeetCode599. 兩個列表的最小索引總和

1.題目 假設Andy和Doris想在晚餐時選擇一家餐廳,並且他們都有一個表示最喜愛餐廳的列表,每個餐廳的名字用字串表示。 你需要幫助他們用最少的索引和找出他們共同喜愛的餐廳。 如果答案不止一個,則輸

Leetcode 39. 組合總和

給定一個無重複元素的陣列 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。 candidates 中的數字可以無限制重複被選取。 說明: 所有數字(包括 target)都是正整數。 解集不能包