活动介绍

Java算法刷题笔记(Leetcode、牛客)

preview
需积分: 0 2 下载量 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和牛客网等平台,可以练习到各种类型的题目,从而增强编程思维和解决问题的能力。对于初学者来说,定期刷题并整理笔记,能够更好地理解和记忆算法,同时分享笔记还能促进交流,共同进步。所以,建议大家尽早开始刷题,养成良好的学习习惯,与他人分享经验和心得,共同成长。
身份认证 购VIP最低享 7 折!
30元优惠券