Murphy-LeetCode
项目介绍
Murphy-LeetCode 是我个人创建的 LeetCode 刷题笔记网站,基于 MkDocs 和 Material for MkDocs 主题构建。这个网站记录了我在 LeetCode 刷题过程中的解题思路、代码实现、算法分析和经验总结。
🔗 网站链接: Murphy-LeetCode (cosmicdusty.cc)
项目特色
📚 系统化整理
- 按题型分类:将题目按照数据结构和算法类型进行分类整理
- 难度梯度:从简单到困难,循序渐进的学习路径
- 标签系统:为每道题目添加相关标签,便于快速检索
💡 详细解析
- 多种解法:针对同一题目提供多种解题思路
- 时间复杂度分析:详细分析算法的时间和空间复杂度
- 图文并茂:使用图表和示例帮助理解算法逻辑
- 代码注释:详细的代码注释,便于理解实现细节
🛠️ 技术实现
- MkDocs框架:使用 MkDocs 静态网站生成器
- Material主题:采用 Material for MkDocs 现代化主题
- 代码高亮:支持多种编程语言的语法高亮
- 搜索功能:全站搜索,快速定位所需内容
- 响应式设计:适配各种设备和屏幕尺寸
网站结构
主要板块
1. 数据结构专题
数组 (Array)
- 双指针技巧
- 滑动窗口
- 前缀和
- 二分查找
链表 (Linked List)
- 单链表操作
- 双指针技巧
- 链表反转
- 环形链表
栈和队列 (Stack & Queue)
- 单调栈
- 优先队列
- 双端队列
- 栈的应用
树 (Tree)
- 二叉树遍历
- 二叉搜索树
- 平衡树
- 字典树
图 (Graph)
- 图的遍历
- 最短路径
- 拓扑排序
- 并查集
2. 算法专题
动态规划 (Dynamic Programming)
- 线性DP
- 区间DP
- 背包问题
- 状态机DP
贪心算法 (Greedy)
- 区间调度
- 贪心选择
- 活动选择
回溯算法 (Backtracking)
- 排列组合
- N皇后问题
- 数独求解
分治算法 (Divide and Conquer)
- 归并排序
- 快速排序
- 二分查找
3. 专项训练
- HOT 100:LeetCode 热门 100 题精选
- 剑指 Offer:剑指 Offer 系列题目
- 周赛题目:LeetCode 周赛题目整理
- 面试高频:互联网公司面试高频算法题
使用指南
如何查找题目
- 按分类浏览:根据数据结构或算法类型查找相关题目
- 搜索功能:使用网站搜索功能快速定位题目
- 标签筛选:通过标签系统筛选特定类型的题目
- 难度筛选:按照简单、中等、困难的难度进行筛选
学习建议
初学者路径
- 基础数据结构:从数组、链表开始
- 基本算法:掌握排序、查找算法
- 循序渐进:从简单题目开始,逐步提高难度
- 多做练习:每种类型的题目都要有足够的练习量
进阶学习
- 专题突破:选择薄弱环节进行专项训练
- 算法优化:学习更高效的算法实现
- 面试准备:重点关注面试高频题目
- 总结归纳:建立自己的解题模板和思路
技术栈
前端技术
- MkDocs:静态网站生成器
- Material for MkDocs:现代化主题
- Markdown:文档编写语言
- Python-Markdown:Markdown 解析器
扩展插件
- pymdownx.highlight:代码语法高亮
- pymdownx.superfences:代码块增强
- pymdownx.tabbed:标签页支持
- pymdownx.arithmatex:数学公式支持
部署方案
- GitHub Pages:静态网站托管
- GitHub Actions:自动化部署
- Custom Domain:自定义域名
维护和更新
内容更新流程
- 本地编写:使用 Markdown 编写题目解析
- 本地预览:使用
mkdocs serve
本地预览 - 版本控制:提交到 Git 仓库
- 自动部署:GitHub Actions 自动构建和部署
版本规划
- 持续更新:定期添加新的题目解析
- 内容优化:不断完善现有内容的质量
- 功能增强:添加新的功能和交互体验
- 性能优化:提升网站加载速度和用户体验
学习成果
数据统计
- 已完成题目:300+ 道LeetCode题目
- 覆盖范围:涵盖所有主要算法和数据结构
- 代码语言:主要使用Python、Java、C++
- 更新频率:每周更新3-5道新题目
学习收获
- 算法思维:建立了系统的算法思维框架
- 编程能力:提升了代码实现和优化能力
- 面试准备:为技术面试积累了丰富经验
- 知识分享:通过文档整理加深了理解
后续计划
短期计划
- 完善动态规划专题的题目覆盖
- 添加更多图解和动画说明
- 优化网站的搜索和导航功能
- 增加题目难度和标签筛选
长期计划
- 开发交互式代码执行功能
- 添加用户评论和讨论系统
- 制作算法可视化工具
- 建设移动端优化版本
这个网站不仅是我个人的学习记录,也希望能够帮助到其他正在学习算法的同学。如果你也在刷LeetCode,欢迎访问网站获取参考和灵感!
Murphy-LeetCode
https://blog.cosmicdusty.cc/post/Knowledge/Murphy-LeetCode/