首页 > 其他分享 >leecode40.组合总和||

leecode40.组合总和||

时间:2024-11-10 11:19:28浏览次数:3  
标签:target 组合 int combination vector candidates leecode40 combinationSum2 总和

 这题个人感觉很难,一开始按照正常的组合写法没有考虑到去重问题,根据以往写三四数之和的经验,对数组进行了排序,再进行去重逻辑的编写才得以通关,详细去重可以去看看代码随想录,甚至有使用到used数组讲解树枝和数层的去重

class Solution {
private:
    vector<vector<int>> result;
    vector<int> combination;

    void combinationSum2(vector<int>& candidates,int target,int count,int startIndex){
        if(count==target)
            result.push_back(combination);
        else{
            for(int i=startIndex;i<candidates.size()&&count<target;i++){
                //去重
                if(i>startIndex&&candidates[i]==candidates[i-1])
                    continue;

                combination.push_back(candidates[i]);
                combinationSum2(candidates,target,count+candidates[i],i+1);
                combination.pop_back();
            }
        }
    }
public:
    vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
        sort(candidates.begin(),candidates.end());
        combinationSum2(candidates,target,0,0);
        return result;
    }
};

标签:target,组合,int,combination,vector,candidates,leecode40,combinationSum2,总和
From: https://blog.csdn.net/weixin_74175349/article/details/143604831

相关文章

  • 力扣(Leetcode)112. 路径总和(JAVA)
    一、目标 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。叶子节点 是指没有子节点的节点。二、代码解读......
  • Pointnet++改进67:添加SepConv和CGLU的组合创新模块
    简介:1.该教程提供大量的首发改进的方式,降低上手难度,多种结构改进,助力寻找创新点!2.本篇文章对Pointnet++特征提取模块进行改进,加入SepConv和CGLU的组合创新模块,提升性能。3.专栏持续更新,紧随最新的研究内容。目录1.理论介绍2.修改步骤2.1步骤一     2.2步骤二......
  • 11.组合模式设计思想
    11.组合模式设计思想目录介绍01.组合模式基础1.1组合模式由来1.2组合模式定义1.3组合模式场景1.4组合模式思考1.5解决的问题02.组合模式实现2.1罗列一个场景2.2组合结构2.3组合基本实现2.4有哪些注意点03.组合实例演示3.1需求分析3.2代码案例实......
  • 洛谷P1157 组合的输出(Python)
    伤痕,是男子汉的勋章。——圣斗士星矢一、题目P1157组合的输出https://www.luogu.com.cn/problem/P1157二、代码defpri(L):foriinrange(len(L)):ifL[i]==True:print("{:3d}".format(i),end='')defdfs(n,r,cur,count):#n,r为题......
  • 代码随想录算法训练营 day37 day38| 卡码网52.完全背包 518. 零钱兑换 II 377.
    学习资料:https://programmercarl.com/背包问题理论基础完全背包.html#算法公开课相比于01背包,完全背包中每个物品都可以无限次的放入组合:先遍历物品,再逆序遍历背包排列:先逆序遍历背包,再遍历物品学习记录卡码网52.携带研究资料(dp[i]代表当重量为i时的最大价值)点击查看代码n......
  • 顶会新热门:小波变换×Transformer,效率翻倍的AI图像去噪神奇组合
    2024深度学习发论文&模型涨点之——小波变换+Transformer 小波变换与Transformer的结合主要探讨如何利用小波变换的多尺度特性来增强Transformer在处理信号和图像数据时的表现。具体来说,小波变换能够有效提取信号中的局部特征,并在时间和频率域上提供信息,这对于处理复杂的......
  • 组合数学初步
    组合数学初步基本计数原理加法原理:若完成一个事件\(A\)有\(n\)类方法,第\(i\)类有\(s_i\)种不同的方案,则完成事件\(A\)有\(\sum^{n}_{i=1}s_i\)种方案。乘法原理:若完成一个事件\(A\)需要\(n\)步,第\(i\)步有\(k_i\)种不同的方式,则完成事件\(A\)有\(\prod......
  • LeetCode题练习与总结:组合总和 Ⅳ --377
    一、题目描述给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合32位整数范围。示例1:输入:nums=[1,2,3],target=4输出:7解释:所有可能的组合为:(1,1,1,1)......
  • 华为OD机试真题---字母组合
    华为OD机试中的“字母组合”题目是一道涉及字符串处理和回溯算法的编程题。以下是对该题目的详细解析:一、题目描述每个数字关联多个字母,关联关系如下:0关联“a”,“b”,“c”1关联“d”,“e”,“f”2关联“g”,“h”,“i”3关联“j”,“k”,“l”4关联“m”,“n......
  • 【基于PSINS工具箱】以速度为观测量的SINS/GNSS组合导航,CKF滤波
    基于【PSINS工具箱】,提供一个MATLAB例程,仅以速度为观测量的SINS/GNSS组合导航(滤波方式为CKF),无需下载,订阅专栏后可直接复制文章目录工具箱程序简述运行结果代码程序讲解代码功能概述代码结构与关键步骤结论工具箱本程序需要在安装工具箱后使用,工具箱是开源的,链......