Hot 100 --- 二叉树的右视图
本文以LeetCode题目"二叉树的右视图"为例,讲解为什么DFS局部思考会踩坑,以及如何用BFS层序遍历取每层最后一个节点得到右视图
Hot 100 --- 二叉搜索树中第K小的元素
本文以LeetCode题目"二叉搜索树中第K小的元素"为例,讲解如何利用BST中序遍历递增的性质,通过全局计数器在遍历过程中找到第K小的元素
一把 Redis 分布式锁,踩透四个坑:锁争抢、僵尸锁、锁过期、锁丢失
Java 的 synchronized 和 ReentrantLock 只能锁住单个 JVM,多节点部署下会完全失效。本文从"为什么需要分布式锁"切入,按"问题 → 解决 → 引出新问题 → 再解决"的思路,讲清楚 Redis 分布式锁要解决的四大核心问题:锁争抢、僵尸锁、锁过期、锁高可用,以及对应的 SET NX EX、TTL 兜底、看门狗、UUID+Lua、RedLock 方案。
Hot 100 --- 验证二叉搜索树
本文以LeetCode题目"验证二叉搜索树"为例,讲解BST的核心性质和两种验证方法:中序遍历(判断递增)和递归上下限传递,重点详解递归中上下限的传递关系
将有序数组转换为二叉搜索树:分治递归的优雅实践
一道经典的二叉树构建题,将有序数组转换为平衡二叉搜索树的分治递归解法详解
Redis key 过期了就一定会被删吗?讲透过期删除与内存淘汰策略
Redis 的 key 设置了过期时间真的会到期就删吗?内存满了又要淘汰谁?本文从过期字典讲起,系统讲清三种过期删除策略(惰性、定时、定期)及 Redis 的组合方案,再过渡到 8 种内存淘汰策略,最后深入 LRU 近似实现与 LFU 的概率递增、时间衰减机制。
Redis 高可用的最后一公里:Cluster 分片、Gossip 与故障转移全流程
主从+哨兵解决了高可用,但解决不了容量瓶颈。本文从数据分片出发,讲清楚 Redis Cluster 如何通过哈希槽分片、MOVED/ASK 重定向实现不停机扩容,如何通过 Gossip 协议完成去中心化通信,以及如何实现故障转移。
Hot 100 --- 二叉树的层序遍历
本文以LeetCode题目"二叉树的层序遍历"为例,详细讲解BFS(广度优先搜索)的原理和实现,重点说明为什么用队列、队列如何保证层序、以及如何按层分组输出
Hot 100 --- 二叉树与递归
二叉树方面的算法基本都要使用递归,本文系统讲解二叉树的结构和递归的三个核心问题(什么时候用递归、递归的开始与结束、怎么编写递归函数),并配合五道Hot 100入门题进行说明
Hot 100 --- LRU 缓存
本文以LeetCode经典题目"LRU 缓存"为例,从普通哈希表的局限入手,分析为什么需要额外的数据结构来维护访问顺序,最终引出哈希表 + 双向链表的经典组合,实现O(1)时间复杂度的LRU缓存

