当前位置: 首页 > news >正文

数组总和 (leetcode 40

leetcode系列

文章目录

  • 一、核心操作
  • 二、外层配合操作
  • 三、核心模式代码
  • 总结


去重方式和之前三数之和一样,也可以用used数组去重,但本次尝试使用set去重

一、核心操作

  1. 如果count为0了,则证明正好减到了0,就可以收获,并返回
  2. 建立unordered_set
  3. 开始循环,如果在set中能够搜寻到当前的数字,说明已经重复了,则直接进行下一次的循环,如果没有找到,则说明这是一个没有重复的新数字,将其加入set中,后面则直接进行常规操作

提示:小白个人理解,如有错误敬请谅解!

二、外层配合操作

  1. 对数组进行排序

三、核心模式代码

代码如下:

class Solution {
public:
    vector<vector<int>> res;
    vector<int> path;
    void backTracking(vector<int>& candi, int count, int startIndex)
    {
        if(count==0)
        {
            res.push_back(path);
            return;
        }
        unordered_set<int> uset;
        for(int i=startIndex;i<candi.size()&&(count-candi[i])>=0;i++)
        {
            if(uset.find(candi[i])!=uset.end())continue;
            uset.insert(candi[i]);
            path.push_back(candi[i]);
            backTracking(candi,count-candi[i],i+1);
            path.pop_back();
        }
    }
    vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
        if(!candidates.size())return res;
        sort(candidates.begin(),candidates.end());
        backTracking(candidates,target,0);
        return res;
    }
};

总结

  1. 用哈希表的时间复杂度比较高,所以更常用的还是used数组或者直接用startIndex进行去重,最后在for循环条件判断的时候,一定要进行提前预判,只有count减去当前值大于等于0才继续进行循环,不进行提前预判剪枝的话会超时

相关文章:

  • MySql索引下推(ICP)是什么?有什么用?
  • logback希望特定的error日志写入到特定文件
  • Qt/C++音视频开发82-系统音量值获取和设置/音量大小/静音
  • leetcode_字符串 49. 字母异位词分组
  • DeepSeek赋能智慧环保:为环境资源保护提供决策支持,开启绿色智能新时代
  • MAVEN解决版本依赖冲突
  • Mybatis 注解(详细版)
  • UE小:UE5.5 PixelStreamingInfrastructure 使用时注意事项
  • 15 | 定义简洁架构 Store 层的数据类型
  • Skyvern AI 实现 浏览器爬虫+自动化工具
  • coze ai assistant Task 2
  • Flash Attention 算法简介
  • Math.NET Numerics 库怎么装
  • 【Linux内核系列】:文件系统
  • 治愈系自媒体运营方案
  • Linux 字符设备驱动实例
  • 第二章:Qt常用界面组件
  • Java程序开发之Spring Boot快速入门:5分钟搭建RESTful API
  • angular中下载接口返回文件
  • Qt的QMenu 和 QAction的样式设置
  • 上交所五方面落实募资新规:强化关键少数责任和股东权利保障
  • 为什么越来越多景区,把C位留给了书店?
  • 李家超:明日起香港特区护照持有人可免签入境阿联酋
  • 生态环境保护督察工作条例对督察对象和内容作了哪些规定?有关负责人答问
  • 2025年度十大IP!IP SH荣膺文化综合类TOP10
  • 人民日报:浙江着力提升民营企业核心竞争力