Java算法刷题笔记(Leetcode、牛客)
需积分: 0 154 浏览量
更新于2022-04-21
2
收藏 1.27MB PDF 举报
就是自己平时刷题做的一些笔记,经常在LeetCode、牛客网刷题,目前每天都会坚持,我想分享一下我的笔记,希望我自己能更有动力,也希望能帮到一些入门小白吧!大家一定要尽早去刷题,养成一个刷题的好习惯哦!大家随便看看就行,希望也能看到你们的分享,互相帮助学习吧!一起加油!
【Java算法刷题笔记(LeetCode、牛客)】这篇笔记主要涵盖了三个核心知识点:双指针技巧、哈希表的应用以及深度优先搜索算法(DFS)。
1. **双指针技术**:
双指针是算法中常用的一种技巧,通常用于处理链表和数组的问题。在解决“判断链表中是否有环”的问题时,笔记中提供了两种方法。第一种是快慢指针法,设置一个指针每次前进两步(快指针),另一个指针每次前进一步(慢指针)。如果链表存在环,快指针最终会追上慢指针。代码中的`hasCycle`方法正是利用了这个原理。另一种方法是利用哈希表记录已访问的节点,如果遇到已经访问过的节点,说明链表有环。
2. **哈希表**:
哈希表在解决链表问题中起到快速查找和记录的作用。在判断链表是否有环的例子中,通过创建一个哈希集合`visited`,将遍历到的节点添加到集合中。如果再次遇到集合中存在的节点,即表明链表有环。哈希表的`contains`方法用于检查是否存在某个值,`add`方法用于添加元素。
3. **深度优先搜索(DFS)**:
DFS是一种用于遍历或搜索树或图的算法,通常包括递归实现。在二叉树问题中,DFS被用来寻找和为特定值的路径。例如,`hasPathSum`方法遍历二叉树的节点,若当前节点为叶子节点且剩余路径和为零,返回true。否则,递归检查左子树和右子树。此外,还提到了将升序数组转化为平衡二叉搜索树的问题,`sortedArrayToBST`方法通过递归将数组转化为平衡二叉树,保持数组的排序性质。
刷题是提升编程能力和算法理解的重要手段,通过LeetCode和牛客网等平台,可以练习到各种类型的题目,从而增强编程思维和解决问题的能力。对于初学者来说,定期刷题并整理笔记,能够更好地理解和记忆算法,同时分享笔记还能促进交流,共同进步。所以,建议大家尽早开始刷题,养成良好的学习习惯,与他人分享经验和心得,共同成长。

浮云点樱木
- 粉丝: 0
最新资源
- 桩基钢筋加工(劳务分包)协议书.doc
- 单片机原理与接口技术试题及答案.doc
- 给水企业供水调度管理信息化初探.docx
- 用于慢病管理的网络化健康信息技术.ppt
- 基于广义回归神经网络的黄金价格预测.docx
- 城市污水雨水管网的设计计算(毕业设计).doc
- 大数据技术在智慧物流中的应用研究.docx
- 全现浇结构塔楼造价指标.doc
- 浙江计算机网络专业技术历真题(附标准答案).doc
- 监理人员进场一览表1.doc
- hs-icf外墙外保温建筑节能体系技术规程概要.doc
- 人工智能医疗应用场景解析.pptx
- 劳动合同(固定期限).docx
- 4层百货框架结构计算书及施工组织设计.doc
- 新型智慧城市解决方案V3.pptx
- 计算机基础上机指导.doc