You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> LeetCode solutions explained with animations: how pointers move, how states change, how recursion unfolds, and why boundary cases hold.
4
+
> This GitHub copy is the public index and historical assets; **full step-through, replay, speed control, and voice walkthroughs live in the website version.**
5
+
6
+
<!-- Conversion layer: badges (hand-maintained). The problem-count badge reads docs/data/stats.json — number is script-managed, do not edit. -->
[](https://www.algomooc.com/topics?utm_source=github&utm_medium=readme&utm_campaign=lca_revamp&utm_content=hero_topics_en)
14
+
[](https://www.algomooc.com/ai-tutor?utm_source=github&utm_medium=readme&utm_campaign=lca_revamp&utm_content=hero_ai_xiaoou_en)
15
+
16
+
If this project helps you, a **Star** keeps it visible and supports continued updates.
17
+
18
+
---
19
+
20
+
## 🚧 2026 Major Version In Progress
4
21
5
-
LeetCode solutions explained with animations and visual notes.
22
+
This repo is not a one-off archive. A major 2026 upgrade is underway — **only shipped / in-progress facts are listed**:
6
23
7
-
Instead of only storing code, this project focuses on the process behind each solution: how pointers move, how states change, how recursion unfolds, and why boundary cases work. The repository keeps earlier GIFs, notes, code, and article assets, while also syncing the current website-side LeetCode animation index.
24
+
- ✅ **Three-language reference code**: every solution ships **Python / C++ / Java** implementations, Python by default.
25
+
- ✅ **AI tutor "Xiao Ou"**: an AI algorithm tutor that answers follow-up questions on ideas and edge cases while you solve.
26
+
- ✅ **Voice walkthroughs in Wu Shixiong's voice**: the animation narrates as it plays; the voice is **AI-synthesized (Wu Shixiong's voice, authorized)**. Hit 🔊 in the player.
27
+
- 🚧 **Full quality pass over 299 problems**: a problem-by-problem quality review and remake, shipping in batches and synced back into this repo's index.
8
28
9
-
If this project helps you, a GitHub Star is appreciated and helps the project stay visible. For the best animation playback experience, use the website version; GitHub is better for indexes, historical assets, and sync history.
29
+
> Progress flows into the "Current Index" below and [`sync-log.md`](sync-log.md) via the sync scripts.
These GIFs are captured from the current website player. GitHub is good for a fast preview and search; use the website version for full step playback, code walkthroughs, and the interactive reading experience.
35
+
These GIFs are captured from the website player. **Click any image to jump straight to its problem page** (full step playback, three-language code, and voice walkthrough are all in the website version).
<img src="assets/previews/linked-list-cycle.gif" alt="Linked List Cycle animation preview" width="420">
51
71
</a>
52
72
<br>
@@ -57,99 +77,117 @@ These GIFs are captured from the current website player. GitHub is good for a fa
57
77
</tr>
58
78
</table>
59
79
80
+
**↑ The website version also lets you step, replay, change speed, and listen** — [open the interactive version →](https://www.algomooc.com/leetcode-animation?utm_source=github&utm_medium=readme&utm_campaign=lca_revamp&utm_content=preview_cta_en)
81
+
82
+
---
83
+
60
84
## Highlights
61
85
62
-
-**Animation-first notes**: many problems keep GIFs or step-by-step animation assets.
63
-
-**256 LeetCode animation entries**: the current website-side index is synced into this repository, covering arrays, linked lists, stacks, binary trees, dynamic programming, graphs, backtracking, greedy methods, binary search, and more.
> **What the numbers mean**: **256** is the number of **LeetCode animations already synced into this repo** (computed by scripts from the website-side `study_index.js` → `manifest.json`).
110
+
> The **299** mentioned above is **algomooc.com's full animation catalog** (including advanced problems and topic sets, from the site's `content-stats` single source) — a larger set than this repo's synced LeetCode subset.
111
+
> Both numbers are **script-managed and never hand-typed**: 256 comes from this repo's manifest; 299 is backfilled from the site's content-stats (see the `siteTotal` field in [`data/stats.json`](data/stats.json)).
112
+
113
+
---
81
114
82
115
## Content Map
83
116
84
117
| Goal | Start Here |
85
118
| :-- | :-- |
86
-
| Search animations by problem number |[`docs/leetcode-animation-index.md`](leetcode-animation-index.md)|
87
-
| Search animations by topic |[`docs/index-by-topic.md`](index-by-topic.md)|
119
+
| Search animations by problem number |[`leetcode-animation-index.md`](leetcode-animation-index.md)|
120
+
| Search animations by topic |[`index-by-topic.md`](index-by-topic.md)|
88
121
| Process problem data with scripts |[`data/manifest.json`](data/manifest.json)|
89
-
| Read earlier notes |[`docs/notes/`](notes) or each problem's `Article/` folder under [`problems/`](../problems)|
122
+
| Read earlier notes |[`notes/`](notes) or each problem's `Article/` folder under [`problems/`](../problems)|
90
123
| Check earlier animation assets | Each problem's `Animation/` folder under [`problems/`](../problems)|
| Read sync history |[`docs/sync-log.md`](sync-log.md)|
93
-
| Sync the website-side index |[`tools/scripts/sync-algomooc-index.js`](../tools/scripts/sync-algomooc-index.js)|
124
+
| Read sync history |[`sync-log.md`](sync-log.md)|
94
125
95
-
## Usage
126
+
---
96
127
97
-
1. Search by problem number in [`docs/leetcode-animation-index.md`](leetcode-animation-index.md).
98
-
2. Use [`data/manifest.json`](data/manifest.json) for scripts or downstream tooling.
99
-
3. Check `docs/notes/` and each problem folder under `problems/` for historical `Article/` and `Animation/` assets.
100
-
4. Run the sync script after the website-side index changes.
128
+
<details>
129
+
<summary><strong>🛠 Maintainers: sync & data notes</strong> (click to expand — readers can skip)</summary>
101
130
102
-
## Repository And Website
131
+
###Repository and website
103
132
104
-
GitHub stores historical content, the public index, and sync scripts. The website maintains the current animation pages, including the playback and step-by-step reading experience. The sync script writes the website-side problem list back into this repository for review, search, and versioning.
133
+
GitHub stores historical content, the public index, and sync scripts; the website maintains the current animation pages. Playback, step-through, and reading experience are authoritative on the website. The sync scripts write the website's problem list back into this repo for review, search, and versioning.
105
134
106
-
## Sync
135
+
###Sync
107
136
108
-
The website-side problem index comes from `study_index.js`. Review first:
137
+
The website's problem index comes from `study_index.js`. Review first:
109
138
110
139
```bash
111
140
npm run review:site
112
141
```
113
142
114
-
If the review says a sync is needed:
143
+
Once a sync is confirmed:
115
144
116
145
```bash
117
-
npm run sync
118
-
npm run validate
146
+
npm run sync # update manifest / number index / topic index / sync log
147
+
npm run validate # validate the manifest
148
+
node tools/scripts/build-readme.js --write # re-inject README number blocks + stats.json
119
149
```
120
150
121
-
The sync script updates:
151
+
This updates:
122
152
123
153
-`data/manifest.json`
124
-
-`docs/leetcode-animation-index.md`
125
-
-`docs/index-by-topic.md`
126
-
-`docs/sync-log.md`
154
+
-`leetcode-animation-index.md`
155
+
-`index-by-topic.md`
156
+
-`sync-log.md`
157
+
-`data/stats.json` and the `Current Index` marker blocks in both READMEs
127
158
128
-
See [`docs/sync-workflow.md`](sync-workflow.md) for the full workflowand commit-message rules.
159
+
See [`sync-workflow.md`](sync-workflow.md)and [`HOW-TO-INTERACT.md`](HOW-TO-INTERACT.md)for the full workflow, commit rules, and number-ownership mechanism.
129
160
130
-
## Layout
161
+
###Layout
131
162
132
163
| Path | Notes |
133
164
| :-- | :-- |
134
-
|`data/manifest.json`| Structured LeetCode animation index |
135
-
|`docs/leetcode-animation-index.md`| Markdown index generated from the manifest |
136
-
|`docs/index-by-topic.md`| Topic index generated from the manifest |
|`tools/`| Sync scripts, schema, animation helpers, and templates |
148
-
149
-
## Feedback
150
-
151
-
Issues are used for broken links, mismatched index entries, and title or category corrections. I will keep syncing website-side animation updates back into this repository so the index remains searchable and versioned.
152
-
153
-
## Chinese
165
+
|`data/manifest.json`| Structured LeetCode animation index (single source of truth for numbers) |
166
+
|`data/stats.json`| Script-computed counts read by the README badge |
167
+
|`leetcode-animation-index.md`| Markdown index generated from the manifest |
168
+
|`index-by-topic.md`| Topic index generated from the manifest |
169
+
|`sync-log.md`| Sync history |
170
+
|`sync-workflow.md`| Website-to-GitHub workflow |
171
+
|`../tools/scripts/review-site-changes.js`| Review whether website changes should be synced |
172
+
|`../tools/scripts/sync-algomooc-index.js`| Sync script for the website-side index |
|`../tools/scripts/build-readme.js`| Inject README number blocks + generate `stats.json`|
175
+
|`assets/previews/`| Website-style animation preview GIFs used by the READMEs |
176
+
|`notes/` · `../problems/`| Historical notes, code, and animation assets |
177
+
178
+
</details>
179
+
180
+
---
181
+
182
+
## ⭐ Star to witness the 299 campaign land
183
+
184
+
[](https://star-history.com/#MisterBooo/LeetCodeAnimation&Date)
185
+
186
+
This project grew from hand-drawn animations to where it is today on the encouragement of every Star.
187
+
If it helped you truly understand a problem, **a Star** is the most concrete support for continued updates.
188
+
189
+
> 📌 Content is continuously synced from **[algomooc.com](https://www.algomooc.com/leetcode-animation?utm_source=github&utm_medium=readme&utm_campaign=lca_revamp&utm_content=footer_site_en)** — when the website updates, the repo index follows via scripts.
0 commit comments