摘要: 高效实现 LRU 缓存机制:双向链表与哈希表的结合 深入剖析 LRU 缓存机制的核心实现,本文巧妙融合双向链表与哈希表,解锁时间复杂度为 O (1) 的高效缓存管理。从数据结构选择到代码实现,多方面解读 LRU 缓存的设计原理及其高效性。 阅读全文
posted @ 2025-07-30 23:54 junjunyi 阅读(108) 评论(0) 推荐(0)
摘要: 【LeetCode 33】算法:搜索旋转排序数组 使用时间复杂度为 O(log n) 的二分查找算法实现“搜索旋转排序数组”。 阅读全文
posted @ 2025-09-04 20:23 junjunyi 阅读(34) 评论(0) 推荐(0)
摘要: 【LeetCode 34】算法:在排序数组中查找元素的第一个和最后一个位置 本文设计并实现时间复杂度为 O(log n) 的算法解决:在排序数组中查找元素的第一个和最后一个位置。 阅读全文
posted @ 2025-09-01 23:28 junjunyi 阅读(17) 评论(0) 推荐(0)
摘要: 【LeetCode 74】算法:搜索二维矩阵 使用二分查找算法和Java代码实现:给定一个有序矩阵和一个目标值 target,确定这个值是否存在于矩阵中 阅读全文
posted @ 2025-09-01 00:05 junjunyi 阅读(29) 评论(0) 推荐(0)
摘要: 使用时间复杂度为 O(log n) 的二分查找算法,实现在排序数组中找到目标值的索引,给出了Java代码实现和详细算法步骤。 阅读全文
posted @ 2025-08-30 23:21 junjunyi 阅读(21) 评论(0) 推荐(0)
摘要: 【LeetCode 236】算法:二叉树的最近公共祖先 本文使用递归法找到给定二叉树中两个指定节点的最近公共祖先,给出算法步骤和Java代码的实现。 阅读全文
posted @ 2025-08-29 23:34 junjunyi 阅读(27) 评论(0) 推荐(0)
摘要: 【LeetCode 437】算法:路径总和 III 题目:给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 核心思想: 这个问题的核心思想是深度优先搜索(DFS) 阅读全文
posted @ 2025-08-27 21:53 junjunyi 阅读(19) 评论(0) 推荐(0)
摘要: 题目:给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 根据给定的先序遍历(preorder)和中序遍历(inorder)数组来重建二叉树是一个经典的算法问题。先序遍历的第一个元 阅读全文
posted @ 2025-08-26 23:58 junjunyi 阅读(42) 评论(0) 推荐(0)
摘要: 【LeetCode 114】算法进阶:二叉树展开为链表 本文利用莫里斯遍历的思想,使用原地算法将二叉树展开为单链表,实现O(1)的空间复杂度。 阅读全文
posted @ 2025-08-15 15:09 junjunyi 阅读(26) 评论(0) 推荐(0)
摘要: 1.数据库自增(步长分段) 原理:N 台 DB 机器,各设不同的起始值和固定步长 N。 示例:两台机器,步长 2,起始 1/2 → 1,3,5… 与 2,4,6… 优点:实现简单,天然递增。 缺点:扩容必须重新调整步长;写瓶颈在 DB;不具备高可用。 2.Redis INCR/INCRBY 原理:利 阅读全文
posted @ 2025-08-14 23:56 junjunyi 阅读(15) 评论(0) 推荐(0)
摘要: 本文使用广度优先搜索算法解决“二叉树的右视图”问题,给出 Jav a代码实现,并分析了时间复杂度和空间复杂度。 阅读全文
posted @ 2025-08-13 23:58 junjunyi 阅读(18) 评论(0) 推荐(0)