# algorithm-mastery **Repository Path**: liszter-doc/algorithm-mastery ## Basic Information - **Project Name**: algorithm-mastery - **Description**: 学习算法 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-23 - **Last Updated**: 2026-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 算法通关计划 Algorithm Mastery > 🎯 **目标**: 系统学习算法,彻底掌握,不再"掘井不出水" > > 📅 **开始日期**: 2026/06/23 > > 💪 **这次不一样**: 有计划、有记录、有复习、能坚持 --- ## 📊 学习进度总览 ### 阶段一:JavaScript 算法通关(预计 6-8 周) | 专题 | 计划题数 | 已完成 | 进度 | 状态 | |------|---------|--------|------|------| | 01 数组 Array | 15 | 2 | 13% | 📝 进行中 | | 02 字符串 String | 12 | 0 | 0% | ⏳ 待开始 | | 03 链表 Linked List | 10 | 0 | 0% | ⏳ 待开始 | | 04 栈与队列 Stack/Queue | 8 | 0 | 0% | ⏳ 待开始 | | 05 树 Tree | 15 | 0 | 0% | ⏳ 待开始 | | 06 图 Graph | 10 | 0 | 0% | ⏳ 待开始 | | 07 排序 Sorting | 8 | 0 | 0% | ⏳ 待开始 | | 08 搜索 Searching | 10 | 0 | 0% | ⏳ 待开始 | | 09 动态规划 DP | 15 | 0 | 0% | ⏳ 待开始 | | 10 贪心 Greedy | 8 | 0 | 0% | ⏳ 待开始 | | 11 回溯 Backtracking | 10 | 0 | 0% | ⏳ 待开始 | | 12 数学 Math | 6 | 0 | 0% | ⏳ 待开始 | | **总计** | **127** | **2** | **2%** | | ### 阶段二:Python 语法速成(预计 1 周) ⏳ 待阶段一完成后开始 ### 阶段三:Python 重刷关键题(预计 2-3 周) ⏳ 待阶段二完成后开始 --- ## 🔥 本周计划 **第 1 周(2026/06/23 - 2026/06/29)** - [ ] 数组专题:Two Sum 系列(3题) - [ ] 数组专题:滑动窗口(2题) - [ ] 建立每日学习习惯 --- ## 📈 最近动态 > **2026/06/24** ✅ 完成第一题 Two Sum(哈希表解法),开启算法之旅!🎉 > > **2026/06/24** ✅ 完成 Best Time to Buy and Sell Stock(一次遍历),踩了「求最小值初始化」的坑并记录到 pitfalls 📝 --- ## 🎯 学习原则 1. **每天至少 1 题** - 宁可慢,不可断 2. **代码 + 心得** - 每题都要写总结 3. **API 实时记录** - 遇到容易忘的立即记录 4. **定期复习** - 3天、7天、14天复习机制 5. **错题重做** - 不懂的题反复做 --- ## 📂 项目结构 ``` algorithm-mastery/ ├── README.md # 本文件 - 总进度看板 ├── PLAN.md # 详细学习路线图 ├── PROGRESS.md # 每日学习记录 ├── javascript/ # JS 版本算法实现 │ ├── 01-array/ # 各专题目录 │ │ ├── problem-name.js # 代码实现 │ │ └── problem-name.md # 心得笔记 │ └── ... ├── python/ # Python 版本(后期) ├── notes/ # 学习笔记 │ ├── js-api-cheatsheet.md # JS API 速查表 │ ├── python-api-cheatsheet.md │ └── pitfalls.md # 常见坑点 ├── review/ # 复习系统 │ ├── review-plan.md # 复习计划 │ ├── mistakes.md # 错题本 │ └── weekly-review.md # 周复习清单 ├── docs/ # 文档 │ └── roadmap.md # 算法知识地图 └── scripts/ # 辅助脚本 └── templates/ # 模板文件 ``` --- ## 🚀 快速开始 ### 第一次使用(初始化) 1. **推送到 Gitee**(首次必做) ```bash # 在 Gitee 创建新仓库: algorithm-mastery # 不要勾选"使用 Readme 文件初始化" # 复制仓库地址后运行: cd algorithm-mastery git remote add origin https://gitee.com/你的用户名/algorithm-mastery.git git branch -M main git push -u origin main ``` 2. **阅读学习计划** - 查看 [PLAN.md](PLAN.md) 了解详细学习路线 - 浏览 [docs/roadmap.md](docs/roadmap.md) 了解算法知识地图 - 看看 [notes/js-api-cheatsheet.md](notes/js-api-cheatsheet.md) 熟悉常用API 3. **开始第一题!** --- ### 📝 完整做题流程(重要!) #### 1. 选择题目 从 [PLAN.md](PLAN.md) 中按顺序选择当前专题的题目 #### 2. 创建文件 在对应专题目录下创建两个文件: ```bash # 例如做 Two Sum 题 javascript/01-array/two-sum.js # 代码文件 javascript/01-array/two-sum.md # 心得文件 ``` #### 3. 写代码 在 `.js` 文件中实现算法,本地测试通过 #### 4. 写心得(关键步骤!) 复制 `scripts/templates/solution-template.md` 的内容到 `.md` 文件,填写: - ✅ 题目信息(链接、难度、用时) - ✅ 思路分析(为什么这样做) - ✅ 代码实现(完整代码) - ✅ 复杂度分析 - ✅ **易忘API**(遇到容易忘的API必须记录!) - ✅ **坑点/易错点**(哪里容易出错) - ✅ 心得体会(学到了什么) - ✅ 掌握度评分(⭐⭐⭐⭐⭐) #### 5. 更新API速查表(如有新API) 如果遇到容易忘的API,同步更新到: - `notes/js-api-cheatsheet.md` #### 6. 更新进度记录 在 `PROGRESS.md` 中记录今天的学习内容 #### 7. 提交到Gitee ```bash git add . git commit -m "✅ 完成 Two Sum - 数组专题第1题 - 掌握哈希表解法 - 时间复杂度 O(n) - 易忘API: map.has(), map.get() " git push ``` #### 8. AI审核(在Kiro中) 拉取代码后,在Kiro对话中说: > "我完成了 Two Sum,已提交,请审核" AI会: - 审核代码质量 - 检查心得是否完整 - 自动生成复习计划(更新 `review/review-plan.md`) - 给出改进建议 - 动态调整学习路线 --- ### 🔄 复习流程 #### 何时复习? 查看 `review/review-plan.md`,按照艾宾浩斯遗忘曲线: - 第1次:完成后 **3天** - 第2次:完成后 **7天** - 第3次:完成后 **14天** - 第4次:完成后 **30天** #### 如何复习? 1. **不看代码**,重新做一遍 2. 对比原解法,找出差异 3. 在 `.md` 文件的"复习记录"部分填写: - 复习日期 - 是否独立完成 - 新的理解 - 更新掌握度评分 4. 提交更新: ```bash git add . git commit -m "🔄 复习 Two Sum - 第1次复习 - 完全独立写出 - 掌握度:⭐⭐⭐⭐⭐ " git push ``` --- ### 🚨 做错题目怎么办? 1. **记录到错题本** 在 `review/mistakes.md` 中详细记录: - 错误类型(思路错误/API错误/边界问题) - 你的错误解法 - 正确思路 - 为什么会错 2. **加入重点复习** 错题需要额外复习: - 3天后必须重做 - 7天后再重做 - 直到掌握度达到 ⭐⭐⭐⭐⭐ 3. **更新坑点记录** 把易错点记录到 `notes/pitfalls.md` --- ### 💻 多设备同步使用 #### 在另一台电脑上继续学习 ```bash # 1. Clone 仓库 git clone https://gitee.com/你的用户名/algorithm-mastery.git cd algorithm-mastery # 2. 继续学习,查看进度 cat README.md cat PROGRESS.md cat review/review-plan.md # 3. 做题、提交(流程同上) ``` #### 每次开始前先同步 ```bash git pull ``` #### 完成后推送 ```bash git add . git commit -m "你的提交信息" git push ``` --- ### 📱 每周复习流程 每周日进行周复习: 1. **查看本周学习内容** 打开 `review/weekly-review.md` 2. **填写周总结** - 本周完成了哪些题 - 本周学习时长 - 本周收获 - 本周问题 - 下周计划 3. **快速过一遍本周题目** - 看代码能否快速理解 - 思路是否记得清楚 - 掌握度低的题目加入复习计划 4. **更新进度表** 更新 README.md 中的进度表 5. **提交周总结** ```bash git add . git commit -m "📊 第X周学习总结 - 本周完成:X题 - 学习时长:X小时 - 连续天数:X天 " git push ``` --- ## 🛠️ 辅助脚本(重要!) 为了让流程更省事,项目内置了 4 个命令。**首次使用前先确保安装了 [Node.js](https://nodejs.org/)。** | 命令 | 作用 | 什么时候用 | |------|------|-----------| | `npm run new` | 新建题目 | 开始一道新题时 | | `npm run review` | 查看今日复习清单 | 每天学习前 | | `npm run done` | 标记复习完成、打分 | 复习完一题后 | | `npm run stats` | 查看学习统计 | 想看进度时 | ### 📌 `npm run new` — 新建题目 交互式创建,会自动帮你: - 在对应专题目录生成 `.js`(代码)和 `.md`(心得模板)文件 - 按艾宾浩斯曲线自动排好 4 次复习日期(3/7/14/30 天后) - 登记到数据文件、自动打卡 ```bash npm run new # 按提示:选专题编号 → 输入题目名 → 选难度 → 粘贴链接(可选) ``` ### 📌 `npm run review` — 今日复习清单 显示今天该复习的题目(逾期的排最前面),以及 3 天内即将到期的题目。 ```bash npm run review ``` ### 📌 `npm run done` — 标记复习完成 复习完一道题后,用它标记完成并更新掌握度评分(1-5 星)。会自动提示下一次复习时间。 ```bash npm run done # 按提示:选题目编号 → 打分(1-5) ``` ### 📌 `npm run stats` — 学习统计 一眼看全局:总进度、连续打卡天数、各专题进度、掌握度分布、复习情况。 ```bash npm run stats ``` > 💾 所有数据存在 `data/problems.json`,会跟着 git 一起同步到其他设备。 --- ## 💡 常见问题 FAQ ### Q1: 忘记某个API怎么办? **A**: 查看 `notes/js-api-cheatsheet.md`,所有常用API都在这里。遇到新的易忘API要立即添加进去! ### Q2: 题目完全不会做怎么办? **A**: 1. 先思考10-15分钟,尝试写出思路 2. 实在不会可以看题解 3. **关键**:理解后必须自己重新写一遍,不能直接复制 4. 在心得中注明"参考了题解" 5. 3天后必须重新做,不看任何提示 ### Q3: 一道题做了很久还是做不出来,要不要跳过? **A**: - 简单题:超过30分钟还没思路,可以看题解 - 中等题:超过45分钟,可以看题解 - 困难题:超过60分钟,可以看题解 - **但必须标记为重点复习题目** ### Q4: 如何知道今天该复习哪些题? **A**: 每天学习前先查看 `review/review-plan.md`,会列出今日需要复习的题目 ### Q5: API速查表和心得中的"易忘API"有什么区别? **A**: - 心得中记录:这道题用到的易忘API - 速查表:汇总所有易忘API,便于集中查看 - 两者要同步更新 ### Q6: 做错的题目怎么处理? **A**: 1. 记录到 `review/mistakes.md`(错题本) 2. 分析错误类型 3. 加入重点复习计划 4. 相同类型的题目多做几道 ### Q7: 如果连续几天没学习,进度中断了怎么办? **A**: 1. **不要自责**,重新开始就好 2. 查看上次学到哪里 3. 先复习上次做的题目,找回感觉 4. 继续从下一题开始 5. **关键是继续,不是完美** ### Q8: 和AI对话时应该怎么说? **A**: 完成题目后,在Kiro中说: ``` 我完成了 Two Sum,已提交,请审核 ``` AI会自动: - 拉取你的代码 - 审核代码质量和心得完整性 - 更新复习计划 - 给出改进建议 ### Q9: 如果某道题的掌握度一直上不去怎么办? **A**: 1. 找同类型的题目多做几道 2. 画图理解算法过程 3. 找视频讲解加深理解 4. 在心得中详细记录每一步为什么这样做 5. 向AI提问具体的困惑点 ### Q10: 每天应该投入多少时间? **A**: - **最低目标**:1小时(1道新题) - **推荐目标**:1.5-2小时(1-2道新题 + 复习) - **周末加量**:3-4小时(3-4道题) - **关键**:每天都学比偶尔刷一天重要得多 ### Q11: 完成一个专题需要多久? **A**: - 数组(15题):约1-2周 - 根据每天做题量调整 - **不要急于求快,理解比数量重要** ### Q12: Python阶段什么时候开始? **A**: - 完成JavaScript阶段全部127题后 - 或者完成前70%题目(约90题)后 - 根据实际需要灵活调整 --- ## 📞 与 AI 协作 每次提交代码和心得后,在对话中告诉 AI: > "我完成了 XX 题,已提交,请审核" AI 会: 1. 审核代码质量 2. 检查心得是否完整 3. 更新复习计划 4. 调整学习路线 --- ## 🏆 里程碑 - [ ] 完成第一个专题(数组) - [ ] 连续学习 7 天 - [ ] 连续学习 30 天 - [ ] 完成 50 题 - [ ] 完成 100 题 - [ ] 完成阶段一(JS 全部) - [ ] Python 语法速成完成 - [ ] 全部完成! --- **记住:这次不是"开始学",而是"必须完成"!** 🔥