为算法零基础学习者设计的 8 周面试训练仓库:每天投入 4 小时,只使用 Python,主线覆盖 LeetCode Hot 100,同时补齐计算机基础与 LLM / Agent / Research 岗位知识。
零基础友好 · 8 周 · 4 小时/天 · Python 3.11+ · Hot 100 · 本地模拟考试
这不是题解合集,也不是把第三方仓库重新镜像一遍。它是一套学习控制系统:告诉你今天学什么、卡住后怎样获得逐级提示、怎样测试自己的代码,以及隔几天还能不能独立写出来。
现实边界:8 周训练可以提高应对常见 OA、机试和初面基础环节的能力,但不保证任何公司或岗位的录用结果。
- 学习计划与审计脚本:Python 3.11+。
- 本地 Python Runner:当前面向 Windows,使用 Windows Job Object 管理执行资源。
- 日常学习与启动网页不需要
npm install,也不需要安装第三方 Python 包。
git clone https://github.com/takeiteasy41/EasyLeetCode.git
cd EasyLeetCode
python -B scripts/audit_learning_plan.py validate --track default看到下面的结果,说明 Hot 100 清单、学习路线、进度账本和容量约束能够互相对上:
VALID: track=default curriculum, ledger, evidence, chain, and capacity
python -B scripts/audit_learning_plan.py today --track default --day 1先做 LeetCode 217(存在重复元素),再尝试 Hot 100 的 LeetCode 1(两数之和)。Day 1 的结构化算法事件固定为:
- LeetCode 217:集合查重脚手架,15 分钟。它不是 Hot 100,不计入 Hot 100 完成数。
- LeetCode 1:Two Sum / 两数之和,35 分钟。这是第一道 Hot 100 主线题。
217 不写入 Hot 100 逐题区;完成后用 complete-scaffold 在独立 scaffold_events 区留下事实。LC1 则按 Hot 100 的事件流程记录。具体字段和命令统一见 进度记录指南。
输出中的 50/180 只表示当天已经结构化排入的算法事件,不代表全天只学习 50 分钟;八股、日结和休息也不会显示在这条队列中。
开始前,把 每日记录模板 复制为 sessions/YYYY-MM-DD.md。完成后按 进度记录指南 写入真实尝试、平台结果和复习证据,不需要先在首页理解 hash chain 等维护细节。
“基础 → 题型 → 实战”是正确方向,但不是先学几周理论再第一次写代码。每天都完成一个小闭环:
白话题意
→ 暴力方法
→ 找重复工作或不变量
→ 伪代码
→ 独立写 Python
→ 边界测试
→ 口述复杂度
→ 安排复习
| 模块 | 时间 | 当天产出 |
|---|---|---|
| 算法与到期复习 | 180 分钟 | 新题、D1/D3/D7、返工或混合模拟 |
| CS / LLM / Agent 八股 | 25 分钟 | 一张 30 秒答题卡 + 一个追问 |
| 日结与证据 | 5 分钟 | 记录卡点、结果和明日第一任务 |
| 三次离屏休息 | 30 分钟 | 保证 4 小时节奏可持续 |
| 合计 | 240 分钟 | 算法、八股、复习与记录形成闭环 |
教学时遵循三条规则:
- 双层解释:先用一句最短的人话说明,再给官方术语、准确机制和最小例子。
- 分级提示:使用 H0–H4 提示阶梯,卡住时每次只前进一步,不直接贴完整答案。
- 理解后表达:先让学习者用自己的话复述,再整理成面试可用的 30 秒官方表达。
完整方法见 每天 4 小时学习闭环、双层解释法 与 小白单题学习法。
| 阶段 | 主要内容 |
|---|---|
| W1–W2 | Python 输入输出、复杂度、数组、哈希、前缀和、双指针、滑窗、链表、栈 |
| W3–W4 | 二叉树、BST、递归、二分、堆、区间、矩阵 |
| W5–W6 | 回溯、贪心、动态规划、图、拓扑排序、Trie |
| W7–W8 | Hard 引导、弱项返工、限时混合、平台补 AC 与收口复盘 |
仓库提供三条独立路线。冲刺线只能在真实学习速度足够时使用,不能预先把目标当成绩:
| 路线 | CLI 名称 | 周期 | Covered | Accepted | verified L3 |
|---|---|---|---|---|---|
| 默认线 | default |
56 天 | 100 | 90 | 35 |
| 恢复线 | recovery |
70 天 | 90 | 80 | 30 |
| 冲刺线 | stretch |
56 天 | 100 | 100 | 40 |
同一道题的三个结果必须分开:
| 结果 | 最短人话 | 不能冒充它的东西 |
|---|---|---|
Covered |
真正尝试,形成可运行 Python,测试边界并至少进行一次平台提交 | 看过题名、读懂题解、复制代码 |
Accepted |
用户报告 LeetCode Python 3 已判题通过,仓库核对题号、URL、ID、语言和记录结构 | 本地样例 PASS、模型说“正确” |
verified L3 |
已有 Accepted,并在严格不同的学习日完成 D1、D3、D7 复习证据 | 一次 AC、网页自评 L3/L4 |
仓库不会登录 LeetCode 账号替你独立鉴真,因此 Accepted 明确记录为 accepted_user_reported。完整证据条件和恢复线触发规则见 8 周路线图。
无需前端构建,在仓库根目录运行:
python prototype/exam/server.py终端会打印一条带随机 session fragment 的完整地址,例如:
http://127.0.0.1:8765/#session=<本次随机令牌>
必须打开终端打印的完整地址;不要只打开固定端口,也不要双击 index.html。
当前练习台支持:
- 算法题与八股题切换;
- 20 / 45 / 90 分钟计时;
- H0–H4 分级提示与 H4 放弃确认;
- Python 内置样例和自定义测试;
- 草稿恢复、运行证据、复盘摘要与自评分离;
- 默认使用
B / Paper Bench浅色纸张界面。
网页
PASS只代表当前代码通过当前配置的用例,不等于 LeetCode Accepted,也不等于verified L3。
Runner 会限制时间、内存、输出和进程树,但它不是权限级安全沙箱。只运行自己编写的学习代码,不要粘贴陌生网页、模型或面经提供的可执行代码。详细边界见 模拟考试原型说明。
| 路径 | 用途 |
|---|---|
config/hot100.toml |
100 道题的身份、难度、主题、计划日和 core 标记的唯一事实源 |
config/learning_plan.toml |
三条路线、日历、分钟预算与六个教学脚手架的唯一事实源 |
docs/ |
稳定的路线、学习方法、算法模式和八股清单 |
progress/problem_ledger.toml |
Hot 100 逐题事件与独立 scaffold_events、复习证据的唯一可变事实源 |
progress/PROGRESS.md |
当前进度、写入命令与审计方法的人类可读入口 |
sessions/ |
每日过程、卡点、时间和证据锚点 |
notes/ 与 solutions/ |
自己真正学过后的专题笔记、八股卡片与独立 Python 代码 |
prototype/exam/ |
本地模拟考试网页与受控 Python Runner |
templates/ |
每日记录、单题笔记、答题卡和模拟面试模板 |
references/ |
外部资料的来源、版本、许可证和使用边界 |
progress/PROGRESS.md 与 progress/REVIEW_QUEUE.md 是派生阅读视图;发生冲突时,以 ledger 和审计脚本为准。
| 外部资料 | 在本仓库中的用途 |
|---|---|
| youngyangyang04/leetcode-master | W1–W6 学习章节顺序、理论和图解 |
| doocs/leetcode | 完成独立尝试后,按题号核对复杂度或另一种 Python 写法 |
| afatcoder/LeetcodeTop | W7–W8 根据目标公司筛选已经学过的历史高频题 |
三个仓库都只是参考资料,不是三套并行待办。本项目默认只保存链接和自己的总结,不复制第三方整库、题解正文、图片或面经数据。详细路由见 资料使用说明 与 来源登记。
当前网页尚未调用模型;真实 .env、本机模型 profile 和 test_llm_api.py 都不会进入公开仓库。未来接入 AI 提示前,必须遵守 AI 助教接入边界。任何提交或推送前都要执行 公开筛选清单。
核心验证命令:
python -B -W error::ResourceWarning -m unittest discover -s tests -p 'test_*.py'
node tests/test_exam_frontend.mjs
node tests/test_browser_lifecycle.mjs
python -B scripts/audit_learning_plan.py validate --track default
python -B scripts/audit_learning_plan.py validate --track recovery
python -B scripts/audit_learning_plan.py validate --track stretch真实 Chrome 与 Windows Runner 冒烟命令见 模拟考试原型说明。