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

【数据结构与算法】LeetCode 每日三题

如果你已经对数据结构与算法略知一二,现在正在复习数据结构与算法的一些重点知识
-------------------------------------------------------------------------------------------------------------------------
关注我🌈,每天更新总结文章(多以图文形式,方便记忆,均为网上搜集资料以及AI)⭐
-------------------------------------------------------------------------------------------------------------------------
时间:2025/5/22/ 19: 04分
-----------------------------------

博主链接:黎明smaly-CSDN博客
快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区


一、LeetCode 1.两数之和

方法一:

               1.首先我们用最简单的方式,for循环嵌套暴力求解

                  依次判断相加是否等于target目标值

代码:

时间复杂度:

                O(N^2) N是数组中的元素数量,最坏情况下,每个元素都要匹配一次

空间复杂度:

                O(1);

方法二:

            1.采用哈希表的方法 利用unordered_map 

                key存放num[]的值,value 存放此值的下标

             2.遍历到nums[0]的时候判断map中有没有target-num[0]的值

                如果有,代表下标0和下标map->second的值为返回结果

代码:

时间复杂度:

                O(N) N是数组中的元素数量,对于每一个元素,我们可以O(1)的寻找target-num[]

空间复杂度:

                O(N)N是数组中的元素数量,开辟的unordered_map空间

二、LeetCode 49.字母异位词分组

方法一:

            1.字母异位词可以简单理解为:里面的字符都相同,只不过顺序不同

            2.既然知道了定义,我们马上就能发现,我们对每个字符串进行一次排序

               如果排序的结果相同,不就代表他俩属于字母异位词,放在一块即可

            3. 我们要使用哈希unordered_map来存储,key存储排序完的结果,value存放

                 未排序的原字符串,这里注意:value存放的是原字符串集合vector<string>

                 因为unordered_map主键不能重复(能理解吧!)我们value是push_back插入的

代码:

时间复杂度:

                O(Nklogk) N是strs中的字符串数量,k是strs中的字符串的最大长度,因为用到了

                sort,sort的时间复杂度平均为O(nlogn)

空间复杂度:

                O(Nk) N是strs中的字符串数量,k是strs中的字符串的最大长度,需要哈希存储

三、LeetCode 128.最长连续序列

方法一:

              题目中说到了,请设计时间复杂度为O(1)的解法

              所以我们这里还是用哈希

              1.我们使用哈希unordered_set来存储数组中的所有数据

              2.因为我们要求连续序列,所以要去重,才采用的set

              3.我们遍历数组中的所有数据,通过哈希去查找这个数的前面一个数num[]-1

                 是否存在,如果存在,代表他不是连续序列的首元素,跳过他,因为他不是

                 首元素,没有任何意义,最终计算结果长度也不对

               4.我们找到前面一个数不存在的数时,则继续判断下一个数是否存在num[]+1

                   直到不存在为止,将长度保存起来,最终比较大小,找出最长的

代码:

时间复杂度:

                O(N) N是数组的长度

空间复杂度:

                O(N) 需要用哈希存储此数组的数据


总结:⭐

这三道题都是跟哈希有关的

如果碰到要求设计时间复杂度为O1的题,首先考虑哈希

对于unordered map / set 的使用要熟悉,哈希离不开这两个STL容器


加油,为了更好的明天!

种一棵树最好的机会是十年前,其次是现在

http://www.xdnf.cn/news/581761.html

相关文章:

  • LeetCode 3356.零数组变换 II:二分查找 + I的差分数组
  • 精益数据分析(78/126):问题-解决方案画布的实战应用与黏性阶段关键总结
  • 华为云Flexus+DeepSeek征文 | 基于ModelArts Studio 的 DeepSeek API 实现行业深度搜索和分析
  • 平时使用电脑,如何去维护
  • VideoMAE论文笔记
  • 游戏引擎学习第305天:在平台层中使用内存 Arena 的方法与思路
  • 模拟退火算法求解01背包问题:从理论到实践的完整攻略
  • IPv4 地址嵌入 IPv6 的前缀转换方式详解
  • AUTOSAR AP 入门0:AUTOSAR_EXP_PlatformDesign.pdf
  • (高级)高级前端开发者指南:框架运用与综合实战
  • 《量子计算实战》PDF下载
  • 工业 / 农业 / AR 场景怎么选?Stereolabs ZED 双目3D相机型号对比与选型建议
  • 融合蛋白质语言模型和图像修复模型,麻省理工与哈佛联手提出PUPS ,实现单细胞级蛋白质定位
  • 边缘计算正在重新定义物联网的未来——你的设备还在“等云“吗?⚡
  • Java 大视界 -- Java 大数据机器学习模型在金融客户生命周期价值预测与营销策略制定中的应用(262)
  • java jdbc执行Oracle sql文件
  • 鸿蒙 HarmonyOS NEXT 系统 Preference 首选项使用全解析
  • Antd中Upload组件封装及使用:
  • 【Redis】三、在springboot中应用redis
  • python实现web请求与回复
  • 水库大坝、坝肩混凝土面板变形及岸坡位移多断面多测点安全监测新途径——变焦视觉位移监测仪
  • 在线时间戳(Unix TimeStamp)转换器
  • 739. 每日温度
  • 单片机如何快速实现查看实时数据
  • [Git] 基本操作及用户配置
  • CSR矩阵 矩阵压缩
  • 深入探究C++11的核心特性
  • [Harmony]网络请求
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Live View Kit (3)
  • HarmonyOS NEXT~React Native 在鸿蒙系统上的应用与实践