Skip to content

Commit 0b36a61

Browse files
吴师兄claude
andcommitted
[readme-conversion] 发布 README 二期转化层 + 数字段脚本接管
线上 README.md 换为二期版(徽章按钮/2026近况区/GIF直达UTM/折叠维护块/Star区); 当前索引数字交 build-readme.js --write 注入(LCA-AUTOGEN 标记区)+ stats.json 供徽章读; sync-workflow 增补 build-readme 步骤。底座(manifest/sync/索引)未改。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 514d33e commit 0b36a61

4 files changed

Lines changed: 201 additions & 54 deletions

File tree

README.md

Lines changed: 83 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,43 @@
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>
@@ -24,7 +46,7 @@
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>
@@ -35,7 +57,7 @@
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>
@@ -44,7 +66,7 @@
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>
@@ -55,27 +77,40 @@
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

@@ -86,24 +121,20 @@
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
109140
npm 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

docs/data/stats.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"count": 256,
3+
"easy": 71,
4+
"medium": 160,
5+
"hard": 25,
6+
"siteTotal": null,
7+
"source": "docs/data/manifest.json"
8+
}

docs/sync-workflow.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ node tools/scripts/review-site-changes.js
3131
```bash
3232
node tools/scripts/sync-algomooc-index.js --log
3333
node tools/scripts/validate-manifest.js
34+
node tools/scripts/build-readme.js --write
3435
```
3536

3637
会更新:
@@ -39,6 +40,7 @@ node tools/scripts/validate-manifest.js
3940
- `docs/leetcode-animation-index.md`
4041
- `docs/index-by-topic.md`
4142
- `docs/sync-log.md`(仅当 manifest 有新增、移除或变更时追加)
43+
- `docs/data/stats.json` 与 README 的 `当前索引` 标记区(数字段,由 `build-readme.js --write` 注入;勿手改标记区)
4244

4345
## 提交规范
4446

0 commit comments

Comments
 (0)