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 周赛题目整理
  • 面试高频:互联网公司面试高频算法题

使用指南

如何查找题目

  1. 按分类浏览:根据数据结构或算法类型查找相关题目
  2. 搜索功能:使用网站搜索功能快速定位题目
  3. 标签筛选:通过标签系统筛选特定类型的题目
  4. 难度筛选:按照简单、中等、困难的难度进行筛选

学习建议

初学者路径

  1. 基础数据结构:从数组、链表开始
  2. 基本算法:掌握排序、查找算法
  3. 循序渐进:从简单题目开始,逐步提高难度
  4. 多做练习:每种类型的题目都要有足够的练习量

进阶学习

  1. 专题突破:选择薄弱环节进行专项训练
  2. 算法优化:学习更高效的算法实现
  3. 面试准备:重点关注面试高频题目
  4. 总结归纳:建立自己的解题模板和思路

技术栈

前端技术

  • MkDocs:静态网站生成器
  • Material for MkDocs:现代化主题
  • Markdown:文档编写语言
  • Python-Markdown:Markdown 解析器

扩展插件

  • pymdownx.highlight:代码语法高亮
  • pymdownx.superfences:代码块增强
  • pymdownx.tabbed:标签页支持
  • pymdownx.arithmatex:数学公式支持

部署方案

  • GitHub Pages:静态网站托管
  • GitHub Actions:自动化部署
  • Custom Domain:自定义域名

维护和更新

内容更新流程

  1. 本地编写:使用 Markdown 编写题目解析
  2. 本地预览:使用 mkdocs serve 本地预览
  3. 版本控制:提交到 Git 仓库
  4. 自动部署:GitHub Actions 自动构建和部署

版本规划

  • 持续更新:定期添加新的题目解析
  • 内容优化:不断完善现有内容的质量
  • 功能增强:添加新的功能和交互体验
  • 性能优化:提升网站加载速度和用户体验

学习成果

数据统计

  • 已完成题目:300+ 道LeetCode题目
  • 覆盖范围:涵盖所有主要算法和数据结构
  • 代码语言:主要使用Python、Java、C++
  • 更新频率:每周更新3-5道新题目

学习收获

  • 算法思维:建立了系统的算法思维框架
  • 编程能力:提升了代码实现和优化能力
  • 面试准备:为技术面试积累了丰富经验
  • 知识分享:通过文档整理加深了理解

后续计划

短期计划

  • 完善动态规划专题的题目覆盖
  • 添加更多图解和动画说明
  • 优化网站的搜索和导航功能
  • 增加题目难度和标签筛选

长期计划

  • 开发交互式代码执行功能
  • 添加用户评论和讨论系统
  • 制作算法可视化工具
  • 建设移动端优化版本

这个网站不仅是我个人的学习记录,也希望能够帮助到其他正在学习算法的同学。如果你也在刷LeetCode,欢迎访问网站获取参考和灵感!


Murphy-LeetCode
https://blog.cosmicdusty.cc/post/Knowledge/Murphy-LeetCode/
作者
Murphy
发布于
2024年3月24日
许可协议