Open-source project
itcharge/AlgoNote avatar
itcharge/AlgoNote

AlgoNote: a Chinese-language algorithms and data structures handbook built around LeetCode

⛽️「算法通关手册」:从零开始的「算法与数据结构」学习教程,200 道「算法面试热门题目」,1000+ 道「LeetCode 题目解析」,持续更新中!

7,820 stars1,286 forksPythonNOASSERTION

At a glance

What is it?
AlgoNote is a Python-flavoured tutorial book covering data structures, classic algorithms and roughly 1000 LeetCode problem write-ups, published as a website and a PDF. It is a study companion, not a library, and its licence rules out most commercial reuse.
Who is it for?
Adopt AlgoNote if you read Chinese and want one ordered path from data structures through dynamic programming to LeetCode write-ups, with a PDF for offline study. Do not adopt it if you need English material, a pip-installable package, or code you can reuse commercially: the book is licensed BY-NC-ND 4.0.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 98 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What AlgoNote actually is, and who it is written for

AlgoNote describes itself as more than a problem-solution book: the README calls it a book that explains algorithms and data structures from the ground up, with detailed write-ups of over 1000 classic LeetCode problems. That framing matters. The repository is a teaching text, not a library you import. If you are looking for a Python package that implements a segment tree or a union-find structure, this is the wrong repository, and the top-level layout confirms it: the entries are .github/, codes/, docs/, LICENSE, README.md and .gitignore. There is no setup.py, no pyproject.toml, no package directory in the published layout.

The stated target readers are programmers with a Python background or another language, people preparing for algorithm interviews, computer science students, and developers who want to improve problem-solving. The README's own account of the author is consistent with that audience: an iOS and macOS developer who competed in ACM for three years and has solved more than 1800 LeetCode problems since 2021, with over 1000 write-ups completed.

The scope is broad rather than deep in any single corner. The README lists ten parts: a preface covering complexity and LeetCode strategy, then arrays, linked lists, stacks/queues/hash tables, strings, trees, graph theory, basic algorithm techniques (enumeration, recursion, divide and conquer, backtracking, greedy, bit manipulation), dynamic programming, additional material, and finally the problem write-ups indexed by problem number.

How the material is organised: docs, codes and a numbered problem index

The repository splits prose from code. The docs/ directory holds the book text that is rendered into the online edition, and codes/ holds the accompanying Python source. The README points readers at the left-hand chapter navigation and a search box in the top right of the site, plus a giscus comment system at the bottom of each page that requires a GitHub account to post.

The problem write-ups form their own part of the book, described in the README as covering all LeetCode problems solved so far and searchable by problem number. That numbering is the practical entry point for most users: if you are stuck on a specific problem, you look it up by number rather than reading the theory chapter first. The README also recommends the opposite order for learners, working through chapters sequentially and finishing the exercises placed at the end of each piece.

Two details are worth flagging as trade-offs. First, the README states that the write-ups cover problems the author has solved, so the corpus is bounded by one person's practice history rather than by the LeetCode catalogue. Second, the repository's README is in Chinese and the site is a Chinese-language book; the badge in the README labels the language as Chinese | Python. That is a real constraint for non-Chinese readers, not a footnote.

Installing nothing: reading AlgoNote online or as a PDF

There is no installation step. The README offers two buttons: read online at algo.itcharge.cn, or download a PDF from the repository's releases page. The most recent release listed is 2.0, tagged AlgoNote-v2.0, dated 2025-10-13. If you want the material locally, the practical route is a clone of the repository rather than a package install.

bash
git clone https://github.com/itcharge/AlgoNote.git
cd AlgoNote
ls

The listing shows .github/, .gitignore, LICENSE, README.md, codes/ and docs/. That is the whole surface: prose in docs/, Python in codes/. For a first real use, open the online edition and use the search box for a topic you already know, then check whether the corresponding write-up exists. A concrete example from the README's structure: go to part 5, trees, and read the sections on binary trees, binary search trees, segment trees, Fenwick trees and union-find, then attempt the exercises at the end of those pages before moving to the numbered problem write-ups.

If you prefer to study offline, take the PDF release instead. The README does not document how the PDF is generated from docs/, so treat the repository text and the PDF as two artefacts of the same book rather than assuming you can rebuild one from the other without reading the build files.

The licence is the biggest practical limit

The README states that the book is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International licence, BY-NC-ND 4.0. The repository's LICENSE file is the authoritative text; the README's summary is a pointer, not a substitute. Two of those clauses bite harder than people expect. NonCommercial rules out using the text in paid courses, internal corporate training, or a commercial interview-prep product. NoDerivatives rules out publishing a translated, abridged or restructured version of the book, which matters if your team works in English and wanted to produce an internal translation.

The README adds that copyright in the problems themselves belongs to LeetCode and LeetCode China. So even the code in codes/ sits inside a document whose surrounding prose is under BY-NC-ND. The repository is marked NOASSERTION at the metadata level, which means the licence could not be machine-identified automatically. Read LICENSE yourself before you copy anything into a codebase. This is a description of what the files say, not legal advice.

Where AlgoNote is the wrong tool

For an English-speaking engineer preparing for a Western interview loop, AlgoNote is a hard sell: the book is written in Chinese, and while Python code is language-neutral, the explanations, the interview framing and the community discussion in the comments are not. You would be reading a translation of a translation.

It is also the wrong tool if you want a maintained code library. The repository's last push was on 2026-06-23, and there is a 2.0 release from 2025-10-13, so the project is still moving, but what moves is prose and problem write-ups. There is no API surface, no versioned package, no changelog of breaking changes to depend on. Nothing in the README describes a semantic-versioning contract for codes/.

A third mismatch is coverage. The README's claim of over 1000 write-ups is large but not exhaustive, and the write-ups are the author's own solutions. If your interview target is a specific company's question bank, or if you need a problem that the author has not solved, the indexed-by-number lookup will return nothing. The README's errata section acknowledges that the book will contain mistakes and asks readers to report them through the page comments or by email, which tells you the text is not independently reviewed.

How it compares with LeetCode's own study material

The obvious alternative is LeetCode itself plus its own curated study plans and editorial solutions, which are written in English and Chinese, kept current with the problem set, and integrated with the judge you will actually submit to. The difference in approach is editorial versus official. LeetCode's material is produced by the platform that owns the problems, so coverage tracks the catalogue and the code runs against the real test harness. AlgoNote is one practitioner's ordered curriculum: it starts from data structure theory, builds up through algorithm paradigms, and only then moves into problem write-ups, with exercises embedded at the end of chapters.

That ordering is the reason to pick AlgoNote over the platform's own material. LeetCode's editors assume you already know which problem to attack; AlgoNote assumes you do not, and spends the early parts on complexity, arrays, linked lists, stacks, queues, hash tables and strings before reaching dynamic programming. The cost is currency and completeness: a single author's 1000-plus write-ups cannot track a catalogue that grows weekly, and the README's own errata section invites correction. If you want a syllabus, AlgoNote; if you want the authoritative solution to the exact problem in front of you, the platform's editorial is the safer first stop.

Editorial conclusion

Adopt AlgoNote if you read Chinese and want one ordered path from data structures through dynamic programming to LeetCode write-ups, with a PDF for offline study. Do not adopt it if you need English material, a pip-installable package, or code you can reuse commercially: the book is licensed BY-NC-ND 4.0. Before committing, open the online edition at algo.itcharge.cn, check that the chapters you need are actually written, and read the licence text on the repository's LICENSE file rather than trusting a summary.

Frequently asked questions

Is AlgoNote a Python library I can install with pip?

No. The repository layout shows .github/, .gitignore, LICENSE, README.md, codes/ and docs/, with no packaging files, and the README presents the project as a book you read online or download as a PDF.

What language is AlgoNote written in?

The book text is in Chinese, and the code examples are Python; the README's badge labels the project as Chinese | Python.

Can I use AlgoNote in a paid course or an internal company training programme?

The README states the book is licensed under BY-NC-ND 4.0, which restricts commercial use and derivative works. The LICENSE file in the repository is the text to read, and this is not legal advice.

How many LeetCode problems does AlgoNote cover?

The README describes detailed write-ups of over 1000 classic LeetCode problems and a separate collection of 200 high-frequency interview problems, indexed by problem number.

Where do I get the PDF version of AlgoNote?

The README links to the repository's releases page for the PDF download; the most recent release listed is 2.0, tagged AlgoNote-v2.0 and dated 2025-10-13.

Official sources

  1. Issues
  2. itcharge/AlgoNote on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/itcharge-algonote.svg)](https://hysenlabs.com/projects/itcharge-algonote)