Skip to content

Repository files navigation

Algo Review 🧠

算法刷题间隔复习提醒系统 —— 基于 艾宾浩斯遗忘曲线,帮助你科学安排算法题的复习计划。

功能特性

  • 📊 概览仪表盘 — 今日待复习/已完成任务一目了然
  • 📝 刷题模式 — 专注刷题,标记"会了"/"不会"自动进入下一轮复习
  • 📚 题库管理 — 浏览所有题目,查看复习状态与阶段
  • ⚙️ 设置 — 自定义每日新题数量
  • 🔄 间隔复习 — 内置艾宾浩斯间隔:[1, 2, 3, 7, 21] 天
  • 📅 每日日志 — 自动记录每日任务完成情况,未完成任务自动顺延

技术栈

  • Python 3.11+
  • tkinter — 原生 GUI 框架
  • JSON — 本地数据存储

快速开始

安装依赖

本项目仅依赖 Python 标准库,无需额外安装第三方包。

准备题库

在项目根目录创建 problems.json,格式如下:

[
  {
    "id": 1,
    "name": "两数之和",
    "url": "https://leetcode.cn/problems/two-sum/"
  },
  {
    "id": 2,
    "name": "两数相加",
    "url": "https://leetcode.cn/problems/add-two-numbers/"
  }
]

运行

日常使用直接双击 启动.bat,不会显示控制台窗口。

排查问题时双击 启动-显示控制台.bat,会显示控制台并在异常退出时暂停。

python run.py

隐藏启动模式下如果出现异常,可查看 logs/app.log

项目结构

AlgoLoop/
├── run.py                      # 启动入口
├── 启动.bat                     # Windows 快捷启动(隐藏控制台)
├── 启动-显示控制台.bat           # Windows 排错启动(显示控制台)
├── problems.json               # 题库数据
├── settings.json               # 用户设置(运行时生成)
├── progress.json               # 学习进度(运行时生成)
├── progress.json.bak           # 进度备份
├── daily_log.json              # 每日日志(运行时生成)
├── logs/                       # 应用日志(运行时生成)
└── algo_reminder/              # 核心代码
    ├── __init__.py
    ├── main.py                 # 应用入口
    ├── app.py                  # 主框架(Tab 导航 + 内容区)
    ├── data.py                 # 数据管理(JSON 读写、进度计算、备份)
    ├── models.py               # 常量、配色主题、字体定义
    ├── widgets.py              # 通用 UI 组件
    └── views/                  # 页面视图
        ├── dashboard.py        # 概览页
        ├── study.py            # 刷题页
        ├── problems.py         # 题库页
        └── settings.py         # 设置页

复习机制

系统基于 艾宾浩斯遗忘曲线 设计了 6 个复习阶段:

阶段 说明
新题 首次学习
第1天 1 天后复习
第2天 2 天后复习
第3天 3 天后复习
第7天 7 天后复习
第21天 21 天后复习
已掌握 不再安排复习

数据存储

所有数据以 JSON 文件形式存储在项目根目录:

  • problems.json — 题库(需手动准备)
  • progress.json — 学习进度与复习计划
  • settings.json — 用户设置
  • daily_log.json — 每日任务日志

💡 以上运行时生成的文件已被 .gitignore 排除,不会误提交到版本控制。

About

基于艾宾浩斯遗忘曲线的 LeetCode 刷题间隔复习桌面应用,帮助你科学、高效地掌握算法题。

Resources

Stars

25 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages