LeetSolv 是一个命令行工具,专为 数据结构与算法 (DSA) 问题复习而设计,带有 间隔重复 (spaced repetition) 功能。支持 LeetCode 和 HackerRank 平台的题目。它由一个定制的 SuperMemo 2 算法驱动,该算法结合了 熟悉度、重要性 和 推理 等变量,避免死记硬背。
零依赖: 完全用纯 Go 实现,不使用第三方库或外部工具——完全控制底层实现。详见 MOTIVATION.md。

scoop bucket add eannchen https://github.com/eannchen/scoop-bucket
scoop install leetsolv
brew tap eannchen/tap
brew install leetsolv
curl -fsSL https://raw.githubusercontent.com/eannchen/leetsolv/main/install.sh | bash
卸载:
curl -fsSL https://raw.githubusercontent.com/eannchen/leetsolv/main/install.sh | bash -s -- --uninstall
leetsolv version
leetsolv help
与标准 SM-2(Anki 使用)不同,LeetSolv 增加了 重要性 和 推理 因子——专为 DSA 练习设计,而非卡片记忆。熟悉度(5 级)、重要性(4 级)和推理(3 级)决定下次复习日期。随机化防止复习集中在同一天。
graph TD
A[将 DSA 问题添加到 LeetSolv] --> B[算法应用自适应]
B --> C[熟悉度等级]
B --> D[重要性等级]
B --> E[推理能力等级]
B --> F[到期惩罚,可选]
B --> G[随机化,可选]
H[算法使用 SM-2 简易因子进行计算]
C --> H
D --> H
E --> H
F --> H
G --> H
H --> I[确定下一次复习]
到期复习会随时间累积。LeetSolv 按优先级分数排序,让你专注于最重要的问题。
默认公式:(1.5×重要性) + (0.5×过期天数) + (3.0×熟悉度) + (-1.5×复习次数) + (-1.0×简易因子)

复习间隔根据重要性、熟悉度和推理能力扩展。重要性越高 = 间隔越短,复习越频繁。

ls、rm),彩色输出。

LeetSolv 可以交互式运行,也可以直接从终端传递命令来运行。
# 启动交互模式
leetsolv
# 或者直接运行命令
leetsolv add https://leetcode.com/problems/two-sum
leetsolv status
# 获取帮助
leetsolv help
通过环境变量或 JSON 配置文件自定义。详见 CONFIGURATION.md。
答:Anki 适合记忆事实,但 DSA 需要更深入的练习。LeetSolv 的 SM-2 算法使用推理、熟悉度和重要性来安排刻意的解题练习——而非死记硬背。
答:不。只添加你想复习的问题。算法使用添加日期来排程——批量添加会创建不切实际的计划。旧问题先重新解决,再添加。
答:跳过几天后 SM-2 会累积到期问题。使用到期优先级评分专注于高优先级问题。已掌握的问题可以删除——目标是持续练习,而非追踪所有内容。
LeetSolv - 基于自定义 SM-2 算法的 DSA 间隔重复 CLI 工具,助你刻意练习。
$ claude mcp add leetsolv \
-- python -m otcore.mcp_server <graph>