最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實(shí)現(xiàn)LeetCode(40.組合之和之二)

 更新時(shí)間:2021年07月15日 11:10:32   作者:Grandyang  
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(40.組合之和之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

[LeetCode] 40. Combination Sum II 組合之和之二

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

Each number in candidates may only be used once in the combination.

Note:

  • All numbers (including target) will be positive integers.
  • The solution set must not contain duplicate combinations.

Example 1:

Input: candidates = [10,1,2,7,6,1,5], target = 8,
A solution set is:
[
[1, 7],
[1, 2, 5],
[2, 6],
[1, 1, 6]
]

Example 2:

Input: candidates = [2,5,2,1,2], target = 5,
A solution set is:
[
[1,2,2],
[5]
]

這道題跟之前那道 Combination Sum 本質(zhì)沒(méi)有區(qū)別,只需要改動(dòng)一點(diǎn)點(diǎn)即可,之前那道題給定數(shù)組中的數(shù)字可以重復(fù)使用,而這道題不能重復(fù)使用,只需要在之前的基礎(chǔ)上修改兩個(gè)地方即可,首先在遞歸的 for 循環(huán)里加上 if (i > start && num[i] == num[i - 1]) continue; 這樣可以防止 res 中出現(xiàn)重復(fù)項(xiàng),然后就在遞歸調(diào)用 helper 里面的參數(shù)換成 i+1,這樣就不會(huì)重復(fù)使用數(shù)組中的數(shù)字了,代碼如下:

class Solution {
public:
    vector<vector<int>> combinationSum2(vector<int>& num, int target) {
        vector<vector<int>> res;
        vector<int> out;
        sort(num.begin(), num.end());
        helper(num, target, 0, out, res);
        return res;
    }
    void helper(vector<int>& num, int target, int start, vector<int>& out, vector<vector<int>>& res) {
        if (target < 0) return;
        if (target == 0) { res.push_back(out); return; }
        for (int i = start; i < num.size(); ++i) {
            if (i > start && num[i] == num[i - 1]) continue;
            out.push_back(num[i]);
            helper(num, target - num[i], i + 1, out, res);
            out.pop_back();
        }
    }
};

到此這篇關(guān)于C++實(shí)現(xiàn)LeetCode(40.組合之和之二)的文章就介紹到這了,更多相關(guān)C++實(shí)現(xiàn)組合之和之二內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

阿荣旗| 榆中县| 吉隆县| 乌鲁木齐市| 旬阳县| 滕州市| 海晏县| 谢通门县| 柘城县| 双鸭山市| 广德县| 南岸区| 六安市| 扎囊县| 河北省| 洛阳市| 栾城县| 葫芦岛市| 米林县| 富阳市| 唐海县| 交口县| 临江市| 漳平市| 商河县| 济源市| 贵南县| 高雄市| 阿拉善盟| 蚌埠市| 华宁县| 丹巴县| 剑阁县| 昂仁县| 重庆市| 图片| 拜城县| 潞城市| 天峻县| 金秀| 长宁县|