文章
跳表 SkipList:有序链表上的多层索引
把跳表看作带多层高速路的链表,理解查询、插入、删除、随机层数和 Redis ZSet 等应用。
NOTES / THINKING IN PUBLIC
记录技术实践,也记录判断如何形成、结论在什么条件下成立。
把跳表看作带多层高速路的链表,理解查询、插入、删除、随机层数和 Redis ZSet 等应用。
用 lowbit 理解树状数组的更新和查询,说明它在动态前缀和、逆序对和频次统计中的应用。
讲清线段树如何拆分区间,支持区间查询、单点修改和区间更新,并对比前缀和与树状数组。
从磁盘 IO、节点扇出、范围查询和叶子链表理解 B 树与 B+ 树,说明它们和红黑树的工程区别。
覆盖取模防溢出、最大公约数、快速幂、素数筛和组合计数,强调公式落地代码时的边界。
从二进制开关、异或、位计数、Bitmap 和状态压缩 DP 理解位运算的应用边界。
把矩阵格子抽象成图节点,讲解方向数组、岛屿 DFS、多源 BFS 和矩阵动态规划。
系统讲解合并区间、会议室数量、扫描线事件和差分数组,强调闭区间与半开区间边界。
从第 k 大、前 k 高频、数据流中位数和任务调度理解堆如何动态维护最值候选。
从保存 next、虚拟头节点、快慢指针和双链合并理解链表算法,重点处理断链和边界问题。
用数组线性扫描,用哈希表记录出现、频次、位置和前缀状态,覆盖两数之和、异位词和连续序列。
把问题抽象成状态图,再根据目标选择 DFS、BFS 或拓扑排序,讲清遍历、最短步数和依赖排序。