文章
树与集合结构总览
比较堆、Trie、搜索树、平衡树、多路树和并查集各自维护的不变量与适用问题。
NOTES / THINKING IN PUBLIC
记录技术实践,也记录判断如何形成、结论在什么条件下成立。
比较堆、Trie、搜索树、平衡树、多路树和并查集各自维护的不变量与适用问题。
通过子集、组合、排列理解选择、进入、撤销和剪枝,避免把回溯写成无脑暴力。
讲清键到槽位、拉链法与开放寻址、负载因子、扩容及 equals/hashCode 契约。
系统比较冒泡、选择、插入、归并、快排、堆排和非比较排序,强调稳定性、空间和输入分布。
通过数组栈、括号匹配与显式 DFS 理解 LIFO,并说明现代 Java 为何优先使用 ArrayDeque。
前缀和解决频繁区间查询,差分数组解决批量区间修改,统一理解一查一改两种方向。
从环形队列进入延迟队列,理解 FIFO、优先级、时间语义、背压与可靠性边界。
从相向双指针、快慢指针到滑动窗口,理解如何把重复枚举变成线性扫描。
从地址计算理解随机访问,拆解动态数组扩容、搬移、摊销复杂度与缓存局部性。
讲清闭区间、半开区间、左边界、右边界和答案二分,重点解决死循环、漏答案和返回值混乱。
理解单向、双向与循环链表,手写节点连接,并澄清 LinkedList 的复杂度边界。
把海量数据、倒排索引和算法练习路线串起来,让算法能力能迁移到工程场景。