普通视图

发现新文章,点击刷新页面。
今天 — 2026年3月12日首页

刷 LeetCode 看不懂题解?我做了一个能"播放"算法的开源可视化平台

2026年3月11日 22:49

凌晨一点,屏幕上还亮着那道动态规划。题解翻来覆去看了三遍——每个字都认识,连起来就是不知道它在干什么。状态怎么转移的?这个 dp[i][j] 到底是从哪来的?脑子里全是问号。

说实话,我也是这么过来的。 不是那种一眼就能看穿算法本质的大佬,每次刷题都卡在"题解看懂了字,却没真正看懂思路"这一步。后来我尝试用 AI 帮自己拆解推理过程,发现有帮助,但光靠文字还是不够——我需要亲眼看到每一步到底发生了什么。

于是就有了 Bare Algo(朴素算法)。这是一个开源的交互式算法可视化平台,把算法的每一步推演变成可以播放、暂停、步进、拖拽的逐帧动画。DP 状态怎么填表、BFS 怎么一层层扩散、回溯在哪里剪枝——不用脑补了,按下播放键,看着它一帧帧跑给你看。


🚀 立即体验(欢迎 Star ⭐)

👉 在线访问barealgo.com
GitHub 仓库Harvey-Andrew/bare-algorithm


为什么它值得关注?

Bare Algo 覆盖了 23 个算法分类——数组、链表、二叉树、图论、动态规划、位运算、单调栈、线段树、并查集……几乎满足从入门到进阶的全部刷题需求。更重要的是,它不仅教你"怎么做",还通过真实业务 Demo(如账号合并检测、课程依赖分析)展示算法在实际场景中的应用,帮助你真正将算法思维内化为工程能力。

✨ 三大核心亮点

  • 🎬 逐帧可视化播放器 — 支持多倍速(0.5x–4x)、进度拖拽、代码同步高亮,播放到哪一帧,对应代码行自动亮起,帧消息实时更新,彻底告别"不知道执行到哪了"。

  • 🔀 多解法一键对比 — 同一道题(如岛屿数量)支持 DFS / BFS / 并查集等多种模式一键切换,直观对比不同算法的思路差异与时空复杂度表现。

  • 📱 全平台响应式体验 — 移动端竖屏悬浮条 + 抽屉、桌面端 7:5 双栏布局,配合自动缩放容器 ScaleToFit,无论手机还是大屏都能流畅使用。

🗺️ 项目架构一览

graph LR
    A["📝 AlgorithmConfig<br/>算法配置"] --> B["⚙️ generateFrames()<br/>帧生成函数"]
    B --> C["🎞️ Frame[]<br/>快照序列"]
    C --> D["🖥️ GenericVisualizer<br/>通用渲染引擎"]
    D --> E["▶️ 交互式播放器<br/>播放/暂停/步进/拖拽"]

    style A fill:#4f46e5,color:#fff,stroke:none
    style B fill:#7c3aed,color:#fff,stroke:none
    style C fill:#a855f7,color:#fff,stroke:none
    style D fill:#c084fc,color:#fff,stroke:none
    style E fill:#e879f9,color:#fff,stroke:none

每个算法都是一个自包含模块,只需定义配置、帧生成逻辑和渲染组件,即可无缝接入平台——这也意味着任何人都可以轻松贡献新题目。

如果你也认同"看动画学算法"这件事,欢迎提 PR 贡献新题目,或在讨论区分享你的解题思路。 你的每一次参与,都在帮助更多人跨过算法这道门槛。

"算法不该只是面试的门槛,它应该被所有人看见和理解。"

❌
❌