"详细代码解析:Leetcode刷题记录"
需积分: 11 109 浏览量
更新于2023-12-21
收藏 342KB DOC 举报
在本文中,我将分享我的leetcode刷题记录,包括我在解决每个问题时所使用的代码和思路讲解。这份记录非常详细,旨在帮助其他人更好地理解leetcode题目的解法和编程技巧。
21、TWO SUM
这道题的关键在于要找到数组中两个数的和等于目标值。我首先考虑使用哈希表来解决这个问题。我遍历数组,将每个元素与其索引存储在哈希表中。然后,我再次遍历数组,对于每个元素,我检查目标值减去当前元素的差是否存在于哈希表中,如果存在,则返回它们的索引。这种方法的时间复杂度为 O(n),空间复杂度为 O(n)。
22、ADD TWO NUMBERS
这是一道链表题,我首先将两个链表的头节点相加,并将和的个位作为结果链表的头节点。然后,我初始化一个进位变量,用于处理两个节点的相加。我遍历两个链表,每次取出两个节点的值,相加后加上进位值,并将和的个位作为新节点的值。然后,更新进位值,并继续遍历。如果在遍历结束后还有进位值,我会在结果链表的最后再添加一个节点。这种方法的时间复杂度为 O(max(m,n)),其中 m 和 n 分别是两个链表的长度。空间复杂度为 O(max(m,n)),用于存储结果链表。
43、LONGEST SUBSTRING WITHOUT REPEATING CHARACTERS
这道题要求找到给定字符串中最长的没有重复字符的子字符串的长度。我首先使用了双指针的方法来解决这个问题。我用一个哈希表来存储每个字符的索引,初始化两个指针 left 和 right,表示子字符串的起始位置和结束位置。然后,我遍历整个字符串,如果当前字符在哈希表中,表示重复出现了,我将 left 指针移动到该重复字符的下一个位置。更新子字符串的长度为当前位置减去 left 的距离,并将当前字符的索引存储在哈希表中。我不断更新最长的子字符串长度,直到遍历结束。这种方法的时间复杂度为 O(n),其中 n 是字符串的长度。空间复杂度为 O(min(m,n)),其中 m 是字符集的大小。由于字符集最多包含 26 个字母,因此空间复杂度是常数级别的。
在leetcode刷题的过程中,我不仅学会了如何使用不同的数据结构和算法来解决问题,还锻炼了自己的编程能力和思维逻辑。这份刷题记录也希望能够帮助其他人更好地理解leetcode题目,提高他们的编程技能。感谢你的阅读!
2024-11-29 上传
2024-11-29 上传
2024-11-29 上传
2024-11-29 上传
整理本人在2021年10月-12月期间写的一些爬虫演示,比如用于渗透测试中SQL注入的URL收集脚本(爬取必应和百度搜索结果的URL),子授权爆破演示,大型高校漏洞信息收集爬虫,以及入门爬虫时.zip
2024-11-29 上传
2024-11-29 上传
2024-11-29 上传
Jackie_AI
- 粉丝: 3267
- 资源: 48
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍