数据结构与算法
文章平均质量分 96
本专栏目的是打造优质的高频面试算法专栏,供各位广大程序员学习!
bugMaker_Rehse
25届Java小登,重铸Java荣光,我辈义不容辞!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
打印节点(链表或者二叉树)工具
摘要:本文介绍了一个用于LeetCode刷题时打印链表和二叉树结构的Java工具类。该工具包含链表节点(ListNode)和二叉树节点(TreeNode)的定义类,以及一个PrintUtils工具类,可通过数组输入自动构建对应数据结构并格式化输出。工具支持两种数据结构类型:链表(0)和二叉树(1)。打印功能包括链表的箭头连接显示和二叉树的分层可视化输出,帮助开发者更直观地调试。并且本文给出了两种数据结构的做题演示。原创 2025-07-27 13:11:24 · 884 阅读 · 0 评论
-
算法:leetcode_146_LRU 缓存
本文详细介绍了LRU(最近最少使用)缓存的设计与实现。通过双向循环链表和哈希表的结合,实现了O(1)时间复杂度的get和put操作。核心实现包括:1)使用双向链表维护访问顺序;2)利用哈希表实现快速查找;3)定义disconnect和pushFront方法维护链表结构;4)处理容量满时的淘汰策略。原创 2025-08-10 19:01:19 · 1245 阅读 · 0 评论 -
算法:leetcode_92_反转链表Ⅱ
本文介绍了如何实现LeetCode第92题"反转链表II",即在链表中局部反转从第left到第right位置的节点。文章通过图示和代码详细讲解了实现步骤, 并且预告了下一次要更新的题目:LRU缓存, 请观看吧, 么么哒!原创 2025-08-10 01:23:10 · 1032 阅读 · 0 评论 -
算法:leetcode_206_反转链表
本文以幽默风格讲解链表反转算法,类比游戏角色技能帮助理解。核心思路是使用pre、cur、next三个指针:pre记录前驱节点(初始null),cur为当前节点(初始head),next暂存后继节点。关键步骤是:1)保存cur.next;2)将cur.next指向pre实现反转;3)pre和cur向后移动。循环直到cur为null时,pre即新链表头节点。文章提供了Java、C++、JS实现代码,并推荐链表打印工具辅助调试。通过生动比喻(如"领导head不干活")和详细注释,使反转链表这一原创 2025-08-07 03:18:15 · 1098 阅读 · 0 评论 -
算法:leetcode_113_路径总和Ⅱ
本文详细讲解了LeetCode 113题"路径总和II"的解法,这是112题的进阶版本。文章采用深度优先搜索(DFS)和回溯算法,重点介绍了如何记录所有满足条件的路径。特别强调了在将路径加入结果列表时需要创建新对象以避免引用问题。文章还分享了本地调试时使用的二叉树构造工具类,并通过debug过程展示了问题排查的思路。最终给出了完整的实现代码并成功提交力扣。原创 2025-08-03 21:22:36 · 1076 阅读 · 0 评论 -
算法:leetcode_112_路径总和
本文介绍了力扣112题"路径总和"的解题思路,采用回溯算法进行求解。作者建议将此题与129题"求根节点到叶节点数字之和"结合练习,并预告后续将更新进阶题目113题"路径总和II"的解法。全文以通俗易懂的方式讲解了回溯算法的应用,适合算法初学者学习原创 2025-08-03 18:35:24 · 1016 阅读 · 0 评论 -
20分钟速刷十道二叉树层序遍历题
本文通过10道二叉树层序遍历题目,系统讲解了广度优先搜索(BFS)的核心思想与实现模板。原创 2025-07-31 01:00:44 · 826 阅读 · 3 评论 -
算法:leetcode_129_求根节点到叶节点数字之和
本文介绍了LeetCode第129题"求根节点到叶节点数字之和"的解题方法。题目要求计算二叉树中从根节点到所有叶子节点路径所表示数字的总和。文章采用递归回溯的方法,通过维护路径变量path和结果变量result,深度优先遍历二叉树。原创 2025-07-29 01:41:18 · 1005 阅读 · 0 评论 -
算法:leetcode_5_最长回文子串
摘要:本文介绍了两种求解最长回文子串的方法:动态规划和中心扩散法。动态规划通过构建二维dp表记录子串状态,从下到上、从左到右遍历字符串,时间复杂度较高但思路清晰。中心扩散法则以每个字符(或相邻字符对)为中心向两边扩展寻找回文,更高效且代码简洁。原创 2025-07-27 01:58:20 · 1069 阅读 · 1 评论
分享