图解算法通识讲义
打通「线性结构」、「经典套路」与「树与图」三大核心心智底座。融合直观心智模型、时空复杂度基准推导、易错避坑指南与动态交互式可视化器,助你彻底告别死记硬背题解。
心智模型映射
用生活直觉与工程映射理解数据结构,建立不可逆的记忆通路。
交互可视化器
内置双指针两端夹逼、哈希桶冲突模拟等交互控件,亲手单步单帧操纵。
四语工业模板
精选 Java / Python / C++ / TypeScript 经过严密调优的黄金模版。
哈希表与散列冲突图解
建立「数值」到「下标」的常数映射引擎,用内存空间换取查找时间的降维打击。
利用散列函数将 Key 映射到底层桶数组,通过拉链法化解碰撞,将 O(n) 的全量巡检压缩为 O(1) 的常数探测。
双指针技巧与对撞收敛
两端夹逼,化繁为简;利用单调性收敛搜索空间,将 O(N^2) 压制到 O(N)。
利用左右对撞指针或快慢指针在有序数组或链表中有序推进,利用决策单调性排除无效区间,实现线性扫描。
滑动窗口与动态伸缩模型
伸缩自如的动态视窗:右边界无脑探路吃进,左边界按需收缩吐出,维护区间不变量。
专门针对连续子串、连续子数组的最优解或计数问题。利用窗口维护当前状态,规避 O(N^2) 的暴力子串枚举。
链表基石与哨兵指针设计
穿针引线,哨兵保底;断链前必先留后路,虚拟头节点化解一切空指针边界。
链表是离散指针引用的典型。熟练运用 dummyHead(哑节点)、双指针截断与局部逆序,规避繁琐的特殊头尾判断。
二叉树深度优先与层序遍历
分而治之,层层递进;前中后序递归是栈,层序遍历是队列,万变不离树根与子树。
掌握递归(自顶向下传递与自底向上归约)与迭代层序遍历(BFS 队列)。理解二叉搜索树(BST)的中序单调递增本质。
动态规划与状态转移推导
大事化小,小事化了;记录历史子问题的最优解,推导当前决策的最优抉择。
核心在于寻找「重叠子问题」与「最优子结构」,通过确立明确的 dp 状态数组定义、推导状态转移方程,并结合初值与滚动数组优化空间复杂度。
二分查找与单调性收敛区间
折半砍半,对数降维;只要拥有单调性或可二段性,就能对候选空间对数收敛。
将 O(N) 的线性探寻压缩到 O(log N)。精准掌控左闭右闭循环不变量,并能将二分推广到旋转排序数组与二分答案求极值。
单调栈与结构化消除模型
后进先出,淘汰弱者;维护单调梯队,为每一个元素寻找下一个更大/更小元素。
栈擅长处理对称消除(括号匹配)与逆序操作;单调栈通过在入栈前弹出破坏单调性的元素,在 O(N) 时间内解决每个元素「最近更大/更小值」的查找。
堆与优先队列 Top-K 动态流维护
局部堆顶,动态过滤;求前 K 个最大用小顶堆,对流式数据维持 O(log K) 的极值筛选。
利用完全二叉树的数组紧凑存储,堆顶以 O(1) 暴露极值,插入与弹出以 O(log K) 调整。是解决 Top-K、中位数流与多路合并的核武器。
贪心策略与局部最优推导
目光短浅,步步为营;只要每一步都做当前最佳选择,局部最优最终聚合为全局最优。
不需要回溯或遍历所有可能,每一步做出在某种标准下最好的决策。关键在于严密的数学证明或反证法证明其无后效性。
回溯算法与递归决策树剪枝
穷举试探,撞墙回头;做选择、递归深入、撤销选择,在决策空间树中搜寻全部可行路径。
回溯是深度优先搜索(DFS)在解空间树上的具象化。掌握全排列、子集与组合的树形结构,利用排序与标记数组实现极速剪枝。
图论遍历、拓扑排序与并查集
点线交织,防环染色;入度为零入队撕开依赖网,并查集瞬间连通岛屿。
图包含有向、无向、带权等复杂关联。掌握基于邻接表的 DFS/BFS 遍历、基于入度数组的拓扑排序 Kahn 算法,以及网格图的岛屿漫水填充。
二维矩阵、坐标变换与螺旋旋转
四维边界围栏逐步收缩;转置翻转实现旋转,左上到右下映射空间位置。
掌握二维矩阵的行优先与列优先映射、四个边界围栏动态收缩推进螺旋遍历,以及通过转置与水平翻转达成 O(1) 空间顺时针旋转。
前缀和与差分数组空间换时间
前人栽树,后人乘凉;预处理累加前缀,任意连续区间的和与积瞬间 O(1) 产出。
专门应对高频的连续子数组区间查询。prefix[i] 表示 [0..i-1] 的累加和,那么任意子数组 [l..r] 之和立刻等于 prefix[r+1] - prefix[l]。结合哈希表解决和为 K 的子数组。
数组区间合并与快速选择
锚定左界,贪心吃进;按起点升序排序,连续重叠区间平滑熔断吞并。
针对区间交织与无序数组的统计。区间问题通过左端点排序后线性扫描合并;第 K 大或划分问题借助快排核心操作 Partition(快速选择)实现平摊 O(N) 的定位。
位运算与原地数值哈希技巧
二进制的上帝视角;异或自反消除成双数,数值符号借位实现 O(1) 原地哈希。
运用异或 (XOR) 特性抵消重复元素、按位与 (AND) 快速抹去最低位 1 (n & (n - 1)),以及利用原数组下标进行符号正负翻转(原地哈希)实现零额外空间查重。
通识讲义与 Hot 100 题目深度联动
在任意 Hot 100 题目的答题工作区右侧,点击【图解通识讲义】Tab 即可直接在 IDE 侧边栏内嵌阅读对应章节,无需中途离开刷题上下文。