LeetCode刷题记录:数组篇(简单题目与解法)
需积分: 16 195 浏览量
更新于2024-07-18
收藏 34KB DOCX 举报
本文档是关于作者在LeetCode网站上针对简单难度、涉及数组类别的前40道左右题目进行的刷题记录。这些题目涵盖了多种算法和数据结构的应用,旨在提升对基本编程技巧的理解和熟练程度。
1. 题目D.两数和
- 问题:在数组中寻找是否存在两个数,它们的和等于给定的目标值。
- 算法:使用哈希表(map)来存储每个元素和其索引,通过`map.containsKey(temp)`快速查找差值。
- 数据结构:哈希表
- 时间复杂度:线性时间O(n),遍历一次数组。
- 空间复杂度:O(n),存储哈希表需要额外空间。
- 错误:在返回结果时,错误地构造了数组,应为`new int[]{i, map.get(temp)}`而不是`new int[][i, map.get(temp)]`。
2. 题目26.C.删除排序数组中的重复项
- 任务:在有序数组中删除重复元素,返回新数组的长度。
- 方法:双指针技术,一个指针遍历,另一个记录不重复元素的下标。
- 数据结构:数组
- 复杂度:时间O(n),空间O(1),仅需一个额外下标。
- 错误:数组长度判断错误,正确写法应该是`nums.length == 0`。
3. 题目27.B.移除元素
- 目标:原地修改数组,移除不等于指定值的元素,返回修改后数组的长度。
- 策略:单次遍历,遇到指定值就将最后一个元素替换并丢弃。
- 数据结构:数组
- 错误:在代码实现中,需要注意修改条件、避免混淆等常见错误。
4. 题目35.C.搜素插入位置
- 挑战:在排序数组中查找目标值的位置或插入位置。
- 算法:简单遍历,用一个下标记录目标索引。
- 数据结构:数组
- 复杂度:线性时间O(n),遍历一次。
- 错误:确保循环结束后正确返回结果,可能存在出界或逻辑错误。
5. 题目53.A.最大子序和
- 问题:找出数组中连续子数组的最大和。
- 技术:动态规划,使用一维数组存储每个位置的最大和及其前缀最大和。
- 数据结构:数组
- 复杂度:时间O(n),空间O(n)用于动态规划数组。
- 注意:动态规划过程中需要注意边界条件和状态转移规则。
通过解决这些题目,作者不仅掌握了基本的数组操作技巧,还锻炼了解决问题和数据结构运用的能力,有助于提升编程技能。对于每一道题,理解算法背后的原理以及常见错误点是关键,这有助于在未来遇到类似问题时能够快速准确地解决。
2021-07-16 上传
2015-12-28 上传
2023-09-07 上传
2024-01-10 上传
2024-11-04 上传
2023-09-19 上传
2023-09-10 上传
2024-01-12 上传
绘梨衣的欧尼酱
- 粉丝: 0
- 资源: 2
最新资源
- Theme-project
- 预算跟踪工具PWA
- ElementaryCellularAutomata:演示Wolfram基本元胞自动机的交互式GUI
- lotus:结合 CSS4 和 JavaScript 模板以获得乐趣和荒谬
- 毕业设计&课设--毕业设计之SpringCloud-B2C电子商务平台服务端.zip
- Excel模板暑假学生计划表.zip
- wechatDatDecode:微信dat文件解码,Windows系统下载exe文件可直接使用
- 马拉松屏幕更新程序:BabyNodeCG
- Delete-files-older-than-and-empty-directories:准备将简单脚本复制粘贴到任务计划程序中
- physiotherapy:它是适用于mvvm架构的移动应用程序草案,专家可以在其中跟踪物理治疗患者
- folksy:教育游戏的框架
- Excel模板00数量金额式明细帐.zip
- node-ec-pem:使用`crypto.createECDH`生成的密钥启用`crypto.sign`和`crypto.verify`
- Dart-Cms-Manage:这是Dart-Cms后台管理系统页面项目,使用vue全家桶
- 同策-2018-2019年房企融资白皮书-2019.1-61页.rar
- DGM-Competency-Browser:该项目允许学生、教师和雇主看到课程和特定能力之间的联系