首页 > 其他分享 >40. 组合总和 II

40. 组合总和 II

时间:2023-04-14 09:58:18浏览次数:40  
标签:used target int 40 II vector candidates vec 总和

给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。

candidates 中的每个数字在每个组合中只能使用 一次 。

注意:解集不能包含重复的组合。

class Solution {
private:
    void traversal(vector<int>& candidates,int index,int target,vector<bool> &used){
        if(target < 0) return;
        if(target == 0){
            res.emplace_back(vec);
            return;
        }
        for(int i = index;i < candidates.size() && candidates[i] <= target; i++){
            if(i > 0 && candidates[i-1] == candidates[i] && used[i-1] == 0) continue;
            vec.emplace_back(candidates[i]);
            used[i] = 1;
            traversal(candidates,i+1,target-candidates[i],used);
            used[i] = 0;
            vec.pop_back();
        }
    }
public:
    vector<vector<int>> res;
    vector<int> vec;
    vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
        res.clear();
        vec.clear();
        vector<bool> used(candidates.size(), false);
        sort(candidates.begin(),candidates.end());
        traversal(candidates,0,target,used);
        return res;
     }
};

标签:used,target,int,40,II,vector,candidates,vec,总和
From: https://www.cnblogs.com/lihaoxiang/p/17317334.html

相关文章

  • winform-C#操作IIS_DirectoryEntry
    1、创建对象:DirectoryEntryrootfolder=newDirectoryEntry("IIS://localhost/W3SVC/1/ROOT"); //IIS://服务器的名字/要操作的Web服务器类型/站点/站点的虚拟目录 2、修改对象: 3、删除对象: 参考:   C#创建虚拟目录  C#使用DirectoryEntry操作IIS创建网站......
  • STM32F407学习
    读懂数据手册,根据数据手册实现功能代码固件库点灯main.cvoiddelay(uint32_tcount){ for(;count!=0;count--); }intmain(void){ /*在这里添加自己的程序*/ LED_GPIO_Config(); while(1) { /*流水灯*/ /* GPIO_ResetBits(GPIOF,GPIO_Pin_6); delay(0xffff......
  • day44 377. 组合总和 Ⅳ |
    给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。示例:nums=[1,2,3]target=4所有可能的组合为:(1,1,1,1)(1,1,2)(1,2,1)(1,3)(2,1,1)(2,2)(3,1)请注意,顺序不同的序列被视作不同的组合。 classSolution{......
  • leetcode:路径总和 III
    问题描述给定一个二叉树的根节点root ,和一个整数targetSum,求该二叉树里节点值之和等于targetSum的路径的数目。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。示例1输入:root=[10,5,-3,3,2,null,11,3,-2,null,1],ta......
  • SPOJ 1825 FTOUR2 - Free tour II (树上点分治)
    题目地址:SPOJ1825树分治的题果然除了模板题就是金牌题啊。。。这题是一道论文题,想了好长时间。。。。终于过了,,,,注意一个坑点,如果权值全部为负的话,是可以不选任意一条边的,这样权值为0。。。也就是说初始值要设为0。。。具体看漆子超的论文《分治算法在树的路径问题中的应用》......
  • HDU 5016 Mart Master II (树上点分治)
    题目地址:HDU5016先两遍DFS预处理出每个点距最近的基站的距离与基站的编号。然后找重心,求出每个点距重心的距离,然后根据dis[x]+dis[y]<d[y],用二分找出当前子树中不会被占领的数量,总点数减去即是被占领的数量。这样就可以求出每个点最多占领的点的数量。然后找最大值即可。......
  • day27| 39+40+131
    39.组合总和 题目简述:给你一个无重复元素的整数数组 candidates和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target的所有 不同组合,并以列表形式返回。你可以按任意顺序返回这些组合。candidates中的同一个数字可以无限制重复被选取......
  • 动态规划02——45. 跳跃游戏 II
    45.跳跃游戏II给定一个长度为n的0索引整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意nums[i+j]处:0<=j<=nums[i] i+j<n返回到达 nums[n-1]的最小跳跃次数......
  • Ethernet II Frame 协议格式
    以太网帧有多种标准,每个标准有细微区别。最常见的是EthernetII标准,除此之外还有NovellrawIEEE802.3|IEEE802.2LLC|IEEE802.2SNAP。帧头格式DestMACSrcMACEthernetTypeDataCRC6bytes6bytes2bytes46-1500bytes4bytesDestMAC目标MAC地址,MAC......
  • MATLAB代码:基于NSGA-II的风光水多能互补协调优化调度
    MATLAB代码:基于NSGA-II的风光水多能互补协调优化调度关键词:NSGA-II算法多目标优化水电-光伏多能互补  参考文档:《店主自写文档》基本复现;仿真平台:MATLAB主要内容:代码主要做的是基于NSGA-II的水电-光伏互补系统协调优化模型,首先,结合水电机组的运行原理以及运行方式,构建了......