首页 > 其他分享 >组合数II

组合数II

时间:2023-03-04 12:33:05浏览次数:39  
标签:used false target 组合 int II vector candidates

leetCode 组合数II 40

这道题和以往不同的是要去重

//关键
              if (i > 0 && candidates[i] == candidates[i - 1] && used[i - 1] == false) {
                continue;
              }
//如果used上一个used为true表示包含在其中,可以取,如果false,肯会重复,如下图

class Solution {
private:
vector<vector<int>> result;
vector<int> ans;
public:
    
    int sum = 0;
    void backtracking(vector<int>& candidates, int target, int startIndex,vector<bool> used){
        if (sum > target) {
            return;
        } else if (sum == target) {
            result.push_back(ans);
            return;
        }
        for (int i = startIndex; i < candidates.size(); i++) {
            if (i > 0 && candidates[i] == candidates[i - 1] && used[i - 1] == false) {
                continue;
            }
            sum += candidates[i];
            ans.push_back(candidates[i]);
            used[i] = true;
            backtracking(candidates, target, i + 1, used);
            used[i] = false;
            sum -= candidates[i];
            ans.pop_back();
        }
    }
    vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
        sort(candidates.begin(), candidates.end());
        vector<bool> used(candidates.size(), false);
        backtracking(candidates, target, 0, used);
        return result;
    }   
};

标签:used,false,target,组合,int,II,vector,candidates
From: https://www.cnblogs.com/tsqo/p/17178072.html

相关文章

  • 相同的树(树)、买卖股票的最佳时机 II(贪心、数组)、下一个排列(数组、双指针)
    相同的树(树)给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入:p=[......
  • 数的组合
    找出从自然数1、2、...、n(0<n<10)中任取r(0<r<=n)个数的所有组合。输入输入n、r。输出按特定顺序输出所有组合。特定顺序:每一个组合中的值从大到小排列,组合之间按逆字......
  • Java应用【XIII】使用Apache Spark MLlib构建机器学习模型【上】
    如果您觉得本博客的内容对您有所帮助或启发,请关注我的博客,以便第一时间获取最新技术文章和教程。同时,也欢迎您在评论区留言,分享想法和建议。谢谢支持!​​一、引言1.1Spark......
  • (二)回溯算法: 组合数
    组合数问题描述给定两个整数n和k,返回范围[1,n]中所有可能的k个数的组合。感悟作为菜鸡的自己,这题一直是自己的心头之恨,上次和好友打比赛,遇到这题直接卡顿,想法......
  • 排列组合去重方法
    题目40.组合总和II思路一道经典的排列组合去重问题,搜索的思路很简单,关键在于如何去重。借用一下代码随想录的图去重的工作实际上就是判断同一层上的相同元素是否已......
  • iis6 500.19 dynamiccompressonModule 处理程序 staticfile FastCGI
    看详细中的处理程序类型是不是staticfile或FastCGI如果不是请出门左转百度。如果是则可以尝试一下方法:staticfile可以尝试一下方法:打开网站的根目录的web.confi文件在配......
  • 552. 学生出勤记录 II (Hard)
    问题描述552.学生出勤记录II(Hard)可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:'A':Absent,......
  • 组合数学笔记(二)
    继续十二重计数法:我们考虑把\(n\)个金币分给\(m\)个人,要求满射,方案数为多少。显然金币是没有区别的,人是有区别的,也就是无区别的小球放入有区别的盒子当中,是典型的插板法,......
  • IIS发布.NET5出现错误
      原因是项目是.NET开发的,本地电脑没有安装对应的环境  安装完后IS管理器看到模块中有【ASPNETCoreModuleV2】。之后便可以正常访问发布的网页。......
  • 代码随想录算法训练营第四天 | 24. 两两交换链表中的节点、19.删除链表的倒数第N个节
    24.两两交换链表中的节点-力扣(LeetCode)给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交......