124 个交互模块 · 拖动、步进、回放,亲眼看清每一步
冒泡、选择、插入、快排、归并、堆排
二分查找、BFS、DFS
BFS 状态空间搜索求最短还原路径
IDA* + 曼哈顿距离求解,16! 状态空间
二叉树遍历(前序、中序、后序)
BFS 广度优先、DFS 深度优先
LIFO 入栈 / 出栈,演示递归调用栈
FIFO 入队 / 出队,BFS 基础
头插 / 遍历 / 删除 / 反转
链地址法演示冲突处理
下一个更大元素:栈维护单调递增
最长无重复子串:双指针扩窗 + 收缩
排序数组两数之和:左右指针相向而行
逐步插入构建 BST,演示搜索路径
最大堆插入上浮 / 提取下沉全过程
0/1 背包:逐步填充 DP 表,状态转移
全排列:选择 → 递归 → 撤销选择
阶乘 / 斐波那契调用栈展开与回溯
逐字符插入单词,观察前缀共享
按秩合并 + 路径查找,集合连通
Kahn BFS:逐步移除入度为 0 的节点
贪心选最近节点,逐步松弛确定最短距
逐步缩半搜索范围,L/M/R 指针移动
O(n) 构建,O(1) 区间求和
AND/OR/XOR/NOT/移位逐位演示
区间调度:按结束时间贪心选最多活动
递归构建区间树,区间求和查询
插入失衡检测 + LL/RR/LR/RL 旋转
构建 next 数组,失配回退高效匹配
哈希 + 双向链表,淘汰最久未用
滑动窗口最大值:单调递减双端队列
按权排序 + 并查集判环构建 MST
逐轮松弛所有边,支持负权最短路
分治:递归分割 + 逐步合并有序子数组
分治 + 基准分区:左右指针交换就位
建大顶堆,反复交换堆顶与末尾下沉
线性排序:统计计数 + 前缀和定位输出
lowbit 跳跃更新 / 前缀和查询,区间覆盖示意
O(n²) DP 填表,比较转移 + 回溯子序列
二维 DP 表逐格填充,字符匹配回溯路径
插入着色 + 旋转调整,维护五条性质
多层索引逐层下降查找,概率化插入
回文半径数组 p[],中心扩展 + 镜像复用
多项式滚动哈希,O(1) 子串比较匹配
DFS 计算 dfn/low,栈操作识别 SCC
石子合并:枚举区间长度与分割点填表
数位分解 + 记忆化搜索,受限/自由状态
TSP 旅行商:二进制集合状态转移
没有上司的舞会:后序遍历选/不选决策
Set 去重增删查 + Map 键值对哈希分布
递减增量分组插入,逐步逼近有序
Hierholzer 算法:DFS 走边回溯入栈成回路
染色法判定 + 匈牙利算法增广求最大匹配
Edmonds-Karp 增广路,残量网络求最大流
多源最短路:以 k 为中转更新所有 i→j
贪心选 key 最小节点加入 MST,逐边松弛
斐波那契矩阵化 + 二进制分解加速幂
增广矩阵行变换:选主元、消元、回代
sqrt 分块:整块懒标记 + 零散块暴力
矩形面积并:扫描线移动 + 事件点处理
朴素递归 vs 记忆化剪枝,memo 表填充
归并排序求逆序对:分解、解决、合并
连续内存随机访问,插入删除元素移动
多路平衡查找树:插入与节点分裂上移
Trie + fail 指针,多模式串一次匹配
倍增法构建 sa/rank/height 数组
快速幂、辗转相除 gcd、埃氏筛素数
杨辉三角递推组合数 + 全排列生成
Nim 游戏:SG 函数与异或和必胜判定
递归回溯推导贝祖系数 x/y,ax+by=gcd
CRT 求解同余方程组:逆元与逐项合并
木材切割:check 验证 + 答案区间收缩
排序去重 + 二分映射,大值域压缩
约束转建边,Bellman-Ford 求可行解判负环
蕴含图 + Tarjan 缩点,拓扑序赋值判可满足
股票含冷冻期:状态转移图 + 逐天填表
预处理祖先表 fa[u][k],二进制跳跃求公共祖先
两次 BFS 求直径,DFS 求重心最小化最大子树
重儿子划分重链 + dfs 序,路径查询沿链跳跃
可持久化线段树:路径复制共享子树,查询第 k 小
懒标记区间修改,查询按需下推传播
带权并查集:维护到根距离,路径压缩更新权值
三维偏序:分治归并 + 树状数组统计贡献
六种复杂度增长曲线对比 + 耗时估算
遍历/反转/回文判断/子串查找/字符统计
顺序逐个比较,命中返回 / 失败遍历全部
邻接矩阵/邻接表双存储 + BFS/DFS 过程联动
线性探测/链地址/再哈希三种冲突解决对比
Floyd 判环、合并有序链表、删倒数第 k 个
Andrew 单调链求凸包:叉积转向判断
循环队列:数组 + 双指针取模与边界判断
TopK 问题:小顶堆维护 K 个最大元素
柱状图最大矩形:弹出时确定宽度算面积
0/1/完全/多重背包:正倒序遍历差异对比
左右边界写法对比,查第一个/最后一个目标
计数/桶/基数三种线性排序:分配与收集
回溯逐行尝试放置皇后,冲突则回溯撤销
递归分治:将整塔从 A 柱移到 C 柱
动态规划:左右最高取较小值计算每柱接水量
DP 填表:增/删/改将串 A 变为串 B 的最少操作
动态规划:相邻不可同抢,状态 DP 求最大金额
贪心:从右向左维护最左可达目标判定能否到达末尾
动态规划:二维 dp 表求限定容量下的最大价值
古典密码:字母按固定移位数循环替换
动态规划:同时维护持币成本与最大利润
动态规划:网格中只能向右/向下的路径总数
Kadane 算法:求连续子段的最大和
古典密码:明文按之字形写在多条轨道
先转置再逐行翻转,原地顺时针旋转 90°
回溯:日字走法走遍棋盘每个格子
回溯:生成集合的全部子集(含空集)
动态规划:每次 1 或 2 步的方法数
回溯:可重复选数凑出目标和的全部组合
古典密码:明文乘密钥矩阵后 mod 26
Rabin-Karp 核心:h = (h*base + code) % mod
统计:按累计权重随机抽取,权重越大概率越高
机器学习:分配最近质心 → 均值更新,迭代收敛
机器学习:最近 k 个邻居多数投票分类
回溯:生成元素的全部排列顺序
回溯:从集合取指定长度的不重复无序组合
均匀洗牌:从后往前与随机位置交换
动态规划:以每个位置结尾的 LIS 长度
集合:A × B 的全部有序对
概率数据结构:多哈希置位,查询有误判可能