11# LeetCodeAnimation
22
3+ > 用动画把 LeetCode 题解过程拆开看:指针怎么移动、状态怎么转移、递归怎么展开、边界为什么成立。
4+ > GitHub 这份是公开索引与历史素材;** 完整的单步、回看、变速、语音讲解在网站版** 。
5+
6+ <!-- 转化层:徽章组(人手维护)。题目数徽章读 docs/data/stats.json,数字由脚本接管,勿手改。 -->
37[ ![ GitHub stars] ( https://img.shields.io/github/stars/MisterBooo/LeetCodeAnimation?style=social )] ( https://github.com/MisterBooo/LeetCodeAnimation )
8+ [ ![ last commit] ( https://img.shields.io/github/last-commit/MisterBooo/LeetCodeAnimation?color=7c3aed )] ( https://github.com/MisterBooo/LeetCodeAnimation/commits/master )
9+ [ ![ LeetCode 动画题数] ( https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2FMisterBooo%2FLeetCodeAnimation%2Fmaster%2Fdocs%2Fdata%2Fstats.json&query=%24.count&label=LeetCode%20%E5%8A%A8%E7%94%BB&suffix=%20%E9%81%93&color=7c3aed )] ( docs/leetcode-animation-index.md )
10+
11+ <!-- 三个转化主按钮:全部带 utm_source=github。链接清单见 docs/readme-revamp/utm-links.md -->
12+ [ ![ 🎬 在线交互版] ( https://img.shields.io/badge/🎬_在线交互版-可单步·变速·语音-7c3aed?style=for-the-badge )] ( https://www.algomooc.com/leetcode-animation?utm_source=github&utm_medium=readme&utm_campaign=lca_revamp&utm_content=hero_interactive )
13+ [ ![ 📚 按专题刷] ( https://img.shields.io/badge/📚_按专题刷-数组·链表·DP·图论…-1f6feb?style=for-the-badge )] ( https://www.algomooc.com/topics?utm_source=github&utm_medium=readme&utm_campaign=lca_revamp&utm_content=hero_topics )
14+ [ ![ 🤖 AI 私教小欧] ( https://img.shields.io/badge/🤖_AI_私教小欧-不会就问-16a34a?style=for-the-badge )] ( https://www.algomooc.com/ai-tutor?utm_source=github&utm_medium=readme&utm_campaign=lca_revamp&utm_content=hero_ai_xiaoou )
15+
16+ 如果这个项目帮到你,欢迎 ** Star** 支持持续更新。
17+
18+ ---
419
5- 用动画把 LeetCode 题解过程拆开看:指针怎么移动、状态怎么转移、递归怎么展开、边界为什么成立。当前已同步网站侧持续维护的 256 道 LeetCode 动画索引。
20+ ## 🚧 2026 大版本进行中
621
7- 如果你觉得这个项目有帮助,欢迎 Star 支持持续更新。完整交互播放、步骤切换和代码讲解,建议打开网站版本。
22+ 这个仓库不是一次性归档。2026 年正在做一轮大版本升级, ** 只列已上线 / 进行中的实话 ** :
823
9- [ 网站版动画] ( https://www.algomooc.com/leetcode-animation ) · [ 题目索引] ( docs/leetcode-animation-index.md ) · [ 结构化数据] ( docs/data/manifest.json )
24+ - ✅ ** 三语言参考代码** :每道题的题解配 ** Python / C++ / Java** 三种实现,Python 为默认。
25+ - ✅ ** AI 私教「小欧」** :吴师兄带的 AI 算法私教,做题卡住可随时追问思路与边界。
26+ - ✅ ** 吴师兄声线语音讲解** :动画边演示边讲,语音为 ** AI 合成(吴师兄声线授权)** ;点播放器里的 🔊 即可听。
27+ - 🚧 ** 299 题全量质量清算** :对全站动画题逐题做质量复核与重制,分批上线,持续同步回本仓库索引。
28+
29+ > 进度会随同步脚本更新到下方「当前索引」与 [ ` docs/sync-log.md ` ] ( docs/sync-log.md ) 。
30+
31+ ---
1032
1133## 网站版动画预览
1234
13- 下面这些 GIF 取自当前网站播放器的关键帧。GitHub 适合快速预览和检索;完整的步骤播放、代码讲解和交互体验建议打开网站版本 。
35+ 下面四张 GIF 取自网站播放器的关键帧, ** 点图直达对应题目页 ** (完整步骤播放、三语言代码、语音讲解都在网站版) 。
1436
1537<table >
1638 <tr >
1739 <td width="50%">
18- <a href="https://www.algomooc.com/leetcode-animation/two-sum">
40+ <a href="https://www.algomooc.com/leetcode-animation/two-sum?utm_source=github&utm_medium=readme&utm_campaign=lca_revamp&utm_content=preview_two_sum ">
1941 <img src="docs/assets/previews/two-sum.gif" alt="两数之和动画预览" width="420">
2042 </a>
2143 <br>
2446 边扫数组边维护哈希表,看清 complement 是怎么被找到的。
2547 </td>
2648 <td width="50%">
27- <a href="https://www.algomooc.com/leetcode-animation/trapping-rain-water">
49+ <a href="https://www.algomooc.com/leetcode-animation/trapping-rain-water?utm_source=github&utm_medium=readme&utm_campaign=lca_revamp&utm_content=preview_trapping_rain_water ">
2850 <img src="docs/assets/previews/trapping-rain-water.gif" alt="接雨水动画预览" width="420">
2951 </a>
3052 <br>
3557 </tr >
3658 <tr >
3759 <td width="50%">
38- <a href="https://www.algomooc.com/leetcode-animation/number-of-islands">
60+ <a href="https://www.algomooc.com/leetcode-animation/number-of-islands?utm_source=github&utm_medium=readme&utm_campaign=lca_revamp&utm_content=preview_number_of_islands ">
3961 <img src="docs/assets/previews/number-of-islands.gif" alt="岛屿数量动画预览" width="420">
4062 </a>
4163 <br>
4466 DFS 染色过程一格一格展开,连通块边界会更容易看清。
4567 </td>
4668 <td width="50%">
47- <a href="https://www.algomooc.com/leetcode-animation/linked-list-cycle">
69+ <a href="https://www.algomooc.com/leetcode-animation/linked-list-cycle?utm_source=github&utm_medium=readme&utm_campaign=lca_revamp&utm_content=preview_linked_list_cycle ">
4870 <img src="docs/assets/previews/linked-list-cycle.gif" alt="环形链表动画预览" width="420">
4971 </a>
5072 <br>
5577 </tr >
5678</table >
5779
80+ ** ↑ 网站版还能单步、回看、变速、听讲解** —— [ 打开在线交互版 →] ( https://www.algomooc.com/leetcode-animation?utm_source=github&utm_medium=readme&utm_campaign=lca_revamp&utm_content=preview_cta )
81+
82+ ---
83+
5884## 项目特点
5985
60- - ** 动画题解** :很多题目保留了 GIF 或分步动画素材,适合先看清算法过程,再回到代码。
61- - ** 256 道 LeetCode 索引** :当前网站侧动画列表已同步到仓库,覆盖数组、链表、栈、二叉树、动态规划、图论、回溯、贪心、二分等常见专题。
62- - ** 历史内容沉淀** :早期题解文章、代码和动画文件继续保留,便于查找旧版本讲解和素材。
63- - ** 结构化数据** :` docs/data/manifest.json ` 可被脚本读取,用来生成索引、检查链接或做二次整理。
64- - ** 持续同步** :网站侧新增或调整动画后,可以通过脚本同步回 GitHub,仓库不是一次性的静态归档。
86+ - ** 动画题解** :先看清算法过程,再回到代码。很多题目保留了 GIF 或分步动画素材。
87+ - ** 三语言代码** :题解配 Python / C++ / Java 三种参考实现。
88+ - ** 结构化数据** :[ ` docs/data/manifest.json ` ] ( docs/data/manifest.json ) 可被脚本读取,用于生成索引、检查链接或二次整理。
89+ - ** 持续同步** :网站侧新增或调整动画后,通过脚本同步回 GitHub —— 仓库不是静态归档。
6590
91+ <!-- LCA-AUTOGEN:STATS START — 勿手改,数字由 tools/scripts/build-readme.js 注入 -->
6692## 当前索引
6793
94+ > 下表数字由 ` tools/scripts/build-readme.js ` 据 ` docs/data/manifest.json ` 实算注入,** 请勿手改** 。
95+
6896| 项目 | 数量 / 位置 |
6997| :-- | :-- |
70- | LeetCode 动画题数 | 256 |
98+ | LeetCode 动画题数 | ** 256** |
7199| 简单 | 71 |
72100| 中等 | 160 |
73101| 困难 | 25 |
74102| 数据文件 | [ ` docs/data/manifest.json ` ] ( docs/data/manifest.json ) |
75- | Markdown 索引 | [ ` docs/leetcode-animation-index.md ` ] ( docs/leetcode-animation-index.md ) |
76- | 专题索引 | [ ` docs/index-by-topic.md ` ] ( docs/index-by-topic.md ) |
77- | 同步记录 | [ ` docs/sync-log.md ` ] ( docs/sync-log.md ) |
78- | 网站路径 | [ ` https://www.algomooc.com/leetcode-animation ` ] ( https://www.algomooc.com/leetcode-animation ) |
103+ | 按题号索引 | [ ` docs/leetcode-animation-index.md ` ] ( docs/leetcode-animation-index.md ) |
104+ | 按专题索引 | [ ` docs/index-by-topic.md ` ] ( docs/index-by-topic.md ) |
105+ | 网站路径 | < https://www.algomooc.com/leetcode-animation > |
106+
107+ <!-- LCA-AUTOGEN:STATS END -->
108+
109+ > ** 数字口径** :上表 ** 256** 指** 已同步到本仓库的 LeetCode 题动画数** (脚本据网站侧 ` study_index.js ` → ` manifest.json ` 实算)。
110+ > 近况区提到的 ** 299** 指 ** algomooc.com 全站动画内容总数** (含进阶题与专题,口径来自站内 ` content-stats ` 单一数据源),范围比本仓库已同步的 LeetCode 子集更大。
111+ > 两个数字都** 由脚本接管、禁止手写** :256 来自本仓库 manifest,299 随站内 content-stats 同步回填(见 [ ` docs/data/stats.json ` ] ( docs/data/stats.json ) 的 ` siteTotal ` 字段)。
112+
113+ ---
79114
80115## 内容地图
81116
86121| 用脚本处理题目数据 | [ ` docs/data/manifest.json ` ] ( docs/data/manifest.json ) |
87122| 查看早期题解文章 | [ ` docs/notes/ ` ] ( docs/notes ) 或 [ ` problems/ ` ] ( problems ) 下各题的 ` Article/ ` |
88123| 查看早期动画素材 | [ ` problems/ ` ] ( problems ) 下各题的 ` Animation/ ` |
89- | 查看 README 预览动图 | [ ` docs/assets/previews/ ` ] ( docs/assets/previews ) |
90124| 查看同步记录 | [ ` docs/sync-log.md ` ] ( docs/sync-log.md ) |
91- | 同步网站侧新索引 | [ ` tools/scripts/sync-algomooc-index.js ` ] ( tools/scripts/sync-algomooc-index.js ) |
92125
93- ## 如何使用
126+ ---
94127
95- 1 . 按题号查找:打开 [ ` docs/leetcode-animation-index.md ` ] ( docs/leetcode-animation-index.md ) ,表格按 LeetCode 题号排序。
96- 2 . 按程序处理:读取 [ ` docs/data/manifest.json ` ] ( docs/data/manifest.json ) ,其中包含题号、slug、中文标题、难度、分类、仓库目录和网站路径。
97- 3 . 查历史素材:早期题解在 ` docs/notes/ ` 和 ` problems/ ` 下各题目录的 ` Article/ ` 、` Animation/ ` 中。
98- 4 . 同步新内容:网站侧新增或调整动画后,运行同步脚本更新本仓库索引。
128+ <details >
129+ <summary ><strong >🛠 维护者:同步与数据说明</strong >(点击展开 —— 普通读者可略过)</summary >
99130
100- ## 仓库和网站的关系
131+ ### 仓库和网站的关系
101132
102- GitHub 仓库用于保存历史内容 、公开索引和同步脚本。 网站侧维护当前动画页面, 交互播放、步骤切换和页面阅读体验以网站版本为准;同步脚本会把网站题目列表写回仓库 ,方便在 GitHub 上审阅、检索和版本化。
133+ GitHub 仓库保存历史内容 、公开索引和同步脚本; 网站侧维护当前动画页面。 交互播放、步骤切换、阅读体验以网站版本为准。同步脚本把网站题目列表写回仓库 ,方便在 GitHub 上审阅、检索和版本化。
103134
104- ## 同步方式
135+ ### 同步方式
105136
106- 网站侧的题目索引来自 ` study_index.js ` 。同步前先审查:
137+ 网站侧题目索引来自 ` study_index.js ` 。同步前先审查:
107138
108139``` bash
109140npm run review:site
@@ -112,41 +143,50 @@ npm run review:site
112143确认需要同步后运行:
113144
114145``` bash
115- npm run sync
116- npm run validate
146+ npm run sync # 更新 manifest / 题号索引 / 专题索引 / 同步记录
147+ npm run validate # 校验 manifest
148+ node tools/scripts/build-readme.js --write # 把 README 数字段 + stats.json 重新注入
117149```
118150
119- 同步脚本会更新 :
151+ 会更新 :
120152
121153- ` docs/data/manifest.json `
122154- ` docs/leetcode-animation-index.md `
123155- ` docs/index-by-topic.md `
124156- ` docs/sync-log.md `
157+ - ` docs/data/stats.json ` 与 README 的 ` 当前索引 ` 标记区(数字段)
125158
126- 更完整的判断规则和 commit 规范见 [ ` docs/sync-workflow.md ` ] ( docs/sync-workflow.md ) 。
159+ 更完整的判断规则、 commit 规范和数字接管机制见 [ ` docs/sync-workflow.md ` ] ( docs/sync-workflow.md ) 与 [ ` docs/HOW-TO-INTERACT.md ` ] ( HOW-TO-INTERACT .md) 。
127160
128- ## 目录
161+ ### 目录
129162
130163| 路径 | 说明 |
131164| :-- | :-- |
132- | ` docs/data/manifest.json ` | LeetCode 动画索引数据 |
165+ | ` docs/data/manifest.json ` | LeetCode 动画索引数据(数字单一数据源) |
166+ | ` docs/data/stats.json ` | 由脚本实算的计数,供 README 徽章读取 |
133167| ` docs/leetcode-animation-index.md ` | 由 manifest 生成的题目列表 |
134168| ` docs/index-by-topic.md ` | 由 manifest 生成的专题索引 |
135169| ` docs/sync-log.md ` | 网站侧索引同步记录 |
136170| ` docs/sync-workflow.md ` | 网站和 GitHub 联动流程 |
137- | ` tools/scripts/review-site-changes.js ` | 判断网站侧改动是否需要同步到 GitHub |
171+ | ` tools/scripts/review-site-changes.js ` | 判断网站侧改动是否需要同步 |
138172| ` tools/scripts/sync-algomooc-index.js ` | 从网站侧 ` study_index.js ` 同步索引 |
139173| ` tools/scripts/validate-manifest.js ` | 校验 manifest |
174+ | ` tools/scripts/build-readme.js ` | 注入 README 数字段 + 生成 ` stats.json ` |
140175| ` docs/assets/previews/ ` | README 使用的网站版动画预览 GIF |
141- | ` docs/notes/ ` | 早期题解文章 |
142- | ` problems/ ` | 早期按题目组织的文章、代码和动画素材 |
143- | ` problems/*/Animation/ ` | 早期动画素材 |
144- | ` problems/*/Article/ ` | 早期文章素材 |
145- | ` tools/ ` | 同步脚本、schema、动画生成工具和模板 |
176+ | ` docs/notes/ ` · ` problems/ ` | 早期题解文章、代码与动画素材 |
177+
178+ </details >
179+
180+ ---
181+
182+ ## ⭐ Star 一下,见证 299 役收官
183+
184+ [ ![ Star History Chart] ( https://api.star-history.com/svg?repos=MisterBooo/LeetCodeAnimation&type=Date )] ( https://star-history.com/#MisterBooo/LeetCodeAnimation&Date )
146185
147- ## 反馈
186+ 这个项目从一张张手画动画走到今天,靠的是每一个 Star 的鼓励。
187+ 如果它让你把某道题真正看懂了,** 点个 Star** 就是对持续更新最实在的支持。
148188
149- 如果发现索引错位、链接失效、题目标题或分类有误,可以在 issue 中记录。我会继续把网站侧新增动画同步回来,让这个仓库保持可检索、可追踪 。
189+ > 📌 内容持续同步自 ** [ algomooc.com ] ( https://www.algomooc.com/leetcode-animation?utm_source=github&utm_medium=readme&utm_campaign=lca_revamp&utm_content=footer_site ) ** —— 网站更新,仓库索引随脚本同步 。
150190
151191## English
152192
0 commit comments