[LeetCode-Algorithms-40] "Combination Sum II" (2017.11.29-WEEK13)

来源:互联网 发布:java实用教程 编辑:程序博客网 时间:2024/06/06 02:49

题目链接:Combination Sum II


  • 题目描述:

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

Each number in C 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.

    For example, given candidate set [10, 1, 2, 7, 6, 1, 5] and target 8,
    A solution set is:
  • [  [1, 7],  [1, 2, 5],  [2, 6],  [1, 1, 6]]

    (1)思路:递归回溯,但注意在同一层递归树中,如果某元素已经处理并进入下一层递归,那么与该元素相同的值就应该跳过,否则将出现重复;另外,相同元素第一个进入下一层递归,而不是任意一个。

    (2)代码:

    class Solution {public:    vector<vector<int> > combinationSum2(vector<int>& candidates, int target) {        sort(candidates.begin(), candidates.end());        vector<vector<int> > ret;        vector<int> cur;        Helper(ret, cur, candidates, target, 0);        return ret;    }    void Helper(vector<vector<int> > &ret, vector<int> cur, vector<int> &candidates, int target, int position){        if(target == 0)            ret.push_back(cur);        else{            for(int i = position; i < candidates.size() &&candidates[i] <= target; i ++){                if(i != position && candidates[i] == candidates[i-1])                    continue;                cur.push_back(candidates[i]);                Helper(ret, cur, candidates, target-candidates[i], i+1);                cur.pop_back();            }        }    }};

    (3)提交结果:

    这里写图片描述

    原创粉丝点击
    热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为6x信号不好怎么办 昂达平板v819i刷成砖了怎么办 华为5x忘记密码怎么办 荣耀8开不了机怎么办 华为5s死机了怎么办 华为重启后忘了解锁密码怎么办 华为mate.9上网速度慢怎么办 华为mate10上网速度慢怎么办 四核豌豆2变砖怎么办 苹果32g不够用怎么办 移动4g网络卡怎么办 移动4g网非常卡怎么办 移动4g卡网速慢怎么办 手机移动4g网卡怎么办 华为手机摄像头进灰怎么办 美图t8忘记密码怎么办 华为mate7忘记开机密码怎么办 华为mate9开机密码忘记怎么办 华为手机系统更新失败怎么办 mate9系统升级后耗电快怎么办 华为荣耀手机耗电快怎么办 荣耀10手机拍照不清晰怎么办 荣耀6x拍照模糊怎么办 华为荣耀P9进水了怎么办 苹果5s手机信号不好怎么办 苹果5s信号不好怎么办? 苹果5s像素不好怎么办 华为mate边缘有缝怎么办 华为mate8边缘有缝怎么办 手机系统占用运行内存大怎么办 安卓手机储存空间不足怎么办 手机显示系统空间不足怎么办 联系人存储已停止运行怎么办 荣耀note8听筒声音小怎么办 红米4x内存不足怎么办 安卓电视内存小怎么办 红米手机运行内存不足怎么办 红米手机存储空间不足怎么办 华为手机储存空间不足怎么办 大麦机顶盒遥控器丢了怎么办 大麦盒子总自动加软件怎么办