跳转至

完整学习目录导航


📚 现有学习资源

🎯 快速开始


📖 阶段一:基础准备

1. 复杂度分析

  • 01-复杂度分析 ⭐⭐⭐⭐⭐
  • 时间复杂度:O(1), O(log n), O(n), O(n²), O(2ⁿ)
  • 空间复杂度
  • 复杂度计算技巧
  • 10+道练习题

2. 数据结构详解(超详细)

2.1 数组(Array)⭐⭐⭐⭐⭐
  • 02-数组详解 📕 10,000+字
  • ✅ 什么是数组(生活例子)
  • ✅ 内存结构可视化
  • ✅ 10+种操作详解(访问、修改、插入、删除、查找、遍历)
  • ✅ Python list完全指南
  • ✅ C++ array/vector完全指南
  • ✅ 5道经典面试题详解(两数之和、买卖股票、最大子数组和等)
  • ✅ 实战应用(数据预处理、滑动窗口、前缀和、矩阵操作)
  • ✅ 15+道练习题(基础、中等、困难)
2.2 链表(Linked List)⭐⭐⭐⭐⭐
  • 03-链表详解 📕 10,000+字
  • ✅ 什么是链表(火车比喻)
  • ✅ 内存结构可视化
  • ✅ 链表类型(单向、双向、循环)
  • ✅ 11种操作详解(创建、遍历、查找、插入、删除、反转、合并等)
  • ✅ 5道经典面试题详解(判断环、找中点、删除倒数第N个、回文链表等)
  • ✅ 链表vs数组对比
  • ✅ 10+道练习题(基础、中等、困难)
2.3 栈(Stack)⭐⭐⭐⭐⭐
  • 04-栈完全详解 📕 15,000+字
  • ✅ 什么是栈(一摞盘子比喻)
  • ✅ 3种实现方式(Python list、链表、C++ STL)
  • ✅ 操作详解(入栈、出栈、查看栈顶,每步都图示)
  • ✅ 4大应用详解:括号匹配、逆波兰表达式、最小栈、最长有效括号
  • ✅ 3道经典面试题:用栈实现队列、简化路径、删除相邻重复项
2.4 队列(Queue)⭐⭐⭐⭐⭐
  • 05-队列完全详解 📕 15,000+字
  • ✅ 什么是队列(排队买票比喻)
  • ✅ 3种实现方式(Python deque、链表、C++ STL)
  • ✅ 操作详解(入队、出队,每步都图示)
  • ✅ 3大应用详解:二叉树层序遍历、滑动窗口最大值、任务调度器
  • ✅ 双端队列、优先队列、循环队列
  • ✅ 2道经典面试题:用队列实现栈、设计循环队列
2.5 哈希表(Hash Table)⭐⭐⭐⭐⭐
  • 06-哈希表完全详解 📕 15,000+字
  • ✅ 什么是哈希表(图书馆比喻)
  • ✅ 超详细的哈希函数(除法哈希、乘法哈希、字符串哈希)
  • ✅ 哈希冲突详解:链地址法、开放寻址法、再哈希
  • ✅ Python dict内部实现
  • ✅ 3道经典面试题:两数之和、字母异位词分组、最长连续序列
  • ✅ 实战应用:LRU缓存、设计推特
2.6 树(Tree)⭐⭐⭐⭐⭐
  • 07-树完全详解 📕 25,000+字
  • ✅ 树的基础概念(组织结构图示)
  • ✅ 二叉树详解:满二叉树、完全二叉树、完美二叉树
  • ✅ 4种遍历方式(前、中、后、层序),递归+迭代实现
  • ✅ 二叉搜索树(BST):性质、插入、查找
  • ✅ 平衡树:AVL树(4种旋转)
  • ✅ 堆和优先队列:大顶堆、小顶堆
  • ✅ 3道经典面试题:二叉树最大深度、翻转二叉树、对称二叉树

📖 阶段二:核心算法

1. 排序算法(完整版)⭐⭐⭐⭐⭐

  • 01-排序算法完全指南 📕 15,000+字
  • 10种排序算法详解
    1. 冒泡排序(Bubble Sort)
    2. 选择排序(Selection Sort)
    3. 插入排序(Insertion Sort)
    4. 希尔排序(Shell Sort)
    5. 归并排序(Merge Sort)
    6. 快速排序(Quick Sort)
    7. 堆排序(Heap Sort)
    8. 计数排序(Counting Sort)
    9. 桶排序(Bucket Sort)
    10. 基数排序(Radix Sort)
  • ✅ 每种算法包含:原理、Python实现、C++实现、图解、复杂度分析
  • ✅ 排序算法选择指南
  • ✅ 6道LeetCode题目详解
  • ✅ 稳定性分析
  • ✅ 实际应用建议

2. 搜索算法 ⭐⭐⭐⭐⭐

  • 02-搜索算法完全详解 📕 15,000+字 🆕
  • ✅ 二分搜索基础:标准二分、lower_bound、upper_bound
  • ✅ 二分搜索变种:旋转数组搜索、寻找峰值、查找重复数
  • ✅ BFS进阶:双向BFS、多源BFS、0-1 BFS
  • ✅ DFS进阶:迭代加深搜索(IDS)、启发式搜索
  • ✅ A*算法:原理、启发式函数、路径规划应用
  • ✅ LeetCode题目详解(10+题)

3. 动态规划(完全版)⭐⭐⭐⭐⭐

  • 03-动态规划完全指南 📕 20,000+字(进行中)
  • ✅ DP基础概念
  • ✅ DP vs 递归 vs 贪心
  • ✅ DP解题四步法
  • 20+个经典DP问题
    • 入门(5题):爬楼梯、最小花费爬楼梯、打家劫舍、杨辉三角、...
    • 进阶(10题):零钱兑换、单词拆分、最长递增子序列、LCS、编辑距离、不同路径、...
    • 困难(5题):目标和、最大正方形、最长有效括号、正则表达式匹配、...
  • ✅ 每题包含:问题描述、多种解法、状态转移图、复杂度分析

📖 阶段三:进阶算法

1. 图算法 ⭐⭐⭐⭐⭐

  • 01-图算法完全详解 📕 25,000+字
  • ✅ 图的基础概念(社交网络比喻)
  • ✅ 图的表示方法(邻接矩阵、邻接表,含详细图解)
  • ✅ DFS和BFS遍历(递归+迭代实现)
  • ✅ 最短路径算法:
    • Dijkstra算法(含优先队列优化)
    • Bellman-Ford算法(含负权边处理)
    • Floyd-Warshall算法(所有顶点对)
  • ✅ 最小生成树(Prim、Kruskal含并查集)
  • ✅ 拓扑排序(Kahn算法BFS实现)
  • ✅ A*算法(启发式搜索)
  • ✅ 2道经典面试题(课程表、网络延迟时间)
  • ✅ 完整代码实现和演示

2. 贪心算法 ⭐⭐⭐⭐

  • 02-贪心算法完全详解 📕 15,000+字
  • ✅ 贪心算法核心思想(局部最优→全局最优)
  • ✅ 贪心解题四步法
  • 8大经典问题
    • 活动选择问题(按结束时间贪心)
    • 区间调度问题(无重叠区间)
    • 跳跃游戏I&II(LeetCode 55, 45)
    • 霍夫曼编码(数据压缩)
    • 分数背包问题(按单价贪心)
    • 最优合并问题
    • 加油站问题(LeetCode 134)
    • 分发糖果(LeetCode 135)
  • LeetCode高频真题
    • 摆动序列(LeetCode 376)
    • 单调递增的数字(LeetCode 738)
    • 种花问题(LeetCode 605)
  • ✅ 贪心vs动态规划对比
  • ✅ 何时能用/不能用贪心

3. 字符串算法 ⭐⭐⭐⭐

  • 03-字符串算法完全详解 📕 20,000+字
  • ✅ 字符串基础(内存表示、匹配问题定义)
  • 暴力匹配算法:O(mn),简单直观
  • KMP算法⭐⭐⭐⭐⭐:
    • next数组(前缀表)计算详解
    • 利用已匹配信息
    • 保证O(m+n)时间
    • 面试必考!
  • Rabin-Karp算法:滚动哈希,适合多模式匹配
  • Boyer-Moore算法:从右向左匹配,实际应用最快
  • Sunday算法:BM改进,关注窗口后字符
  • 字符串处理技巧:双指针、滑动窗口、前缀和哈希
  • LeetCode高频真题:最长公共前缀、反转字符串、字符串相乘
  • ✅ 算法对比总结

4. 回溯算法 ⭐⭐⭐⭐


📖 阶段四:实战强化

1. LeetCode题目详解

  • LeetCode 100+题详解 📕 已创建(35+题详解)
  • 数组(10题):两数之和、买卖股票、最大子数组和、删除重复项、轮转数组、除自身以外数组的乘积、三数之和、搜索二维矩阵II、合并区间、矩阵置零
  • 链表(5题):反转链表、合并两个有序链表、环形链表、环形链表II、回文链表
  • 树(5题):二叉树的最大深度、验证二叉搜索树、对称二叉树、层序遍历、二叉树展开为链表
  • 动态规划(5题):爬楼梯、打家劫舍、零钱兑换、最长递增子序列、完全平方数
  • 图(3题):课程表、课程表II、被围绕的区域
  • 排序/搜索(7题):合并两个有序数组、第一个错误的版本、搜索插入位置、搜索二维矩阵、查找元素的第一个和最后一个位置、寻找峰值、二分查找专题
  • ✅ 每题包含:多种解法、执行过程演示、复杂度分析、代码注释
  • ✅ 面试高频题Top 20标注
  • ✅ 刷题策略和重复刷题建议

2. 大厂面试专项讲解

  • 大厂面试专项讲解 📕 已创建(25,000+字)
  • 字节跳动面试真题
    • LRU缓存机制(哈希表+双向链表)
    • 四数之和(排序+双指针)
    • 接雨水(双指针、DP)
    • 最长有效括号(栈)
    • 滑动窗口最大值(单调队列)
  • 阿里巴巴面试真题
    • 反转链表II(迭代)
    • 二叉树的中序遍历(递归、迭代)
    • Pow(x, n)(快速幂)
    • 最长公共前缀(垂直扫描)
    • 括号生成(回溯)
  • 腾讯面试真题
    • 全排列(回溯、交换法)
    • 子集(回溯)
    • 组合(回溯+剪枝)
    • 单词搜索(DFS+回溯)
    • 岛屿数量(DFS)
  • ✅ 每题包含:问题描述、多种解法、执行过程演示、复杂度分析
  • ✅ 面试技巧与策略(算法流程、沟通技巧、代码风格)
  • ✅ 常见陷阱(边界条件、整数溢出、索引越界)
  • ✅ 高频考点总结(数据结构、算法)
  • ✅ 刷题优先级(必刷题、高频题)

3. AI/ML算法应用

  • AI/ML中的算法应用 📕 15,000+字 🆕
  • 数据预处理中的排序/搜索算法
  • 动态规划在序列建模中的应用(Viterbi、编辑距离、LCS)
  • 图算法在深度学习中的应用(GNN、MCTS、拓扑排序)
  • 优化算法(梯度下降、价值迭代)
  • 实战案例:推荐系统、图像处理、NLP

4. 代码优化实战

  • 代码优化完全指南 📕 15,000+字 🆕
  • 代码优化概述与流程
  • 性能瓶颈识别工具(cProfile、timeit、memory_profiler)
  • 从O(n²)到O(n)的优化案例(两数之和、Kadane算法、LRU缓存)
  • 从O(n)到O(log n)的优化案例(二分查找、求平方根)
  • 空间换时间策略(斐波那契、爬楼梯、布隆过滤器)
  • 实际项目优化案例(大数据去重、日志统计、数据库查询)

5. 系统设计题 ⭐⭐⭐⭐⭐ 🆕

  • 05-设计模式.md 📕 10,000+字 🆕
  • 缓存设计
    • LRU缓存(哈希表+双向链表)
    • LFU缓存(哈希表+频率列表)
  • 数据结构实现
    • 跳表(Skip List)
  • 设计题技巧
    • 面向对象设计原则
    • 时间和空间复杂度权衡
  • LeetCode高频真题
    • LRU缓存(LeetCode 146)
    • LFU缓存(LeetCode 460)
  • Python和C++双语言完整实现

🛠️ 代码模板

Python模板

  • Python模板.md ✅ 已创建(1500+行,Markdown格式)
  • 25+个算法实现
  • 详细注释和复杂度分析
  • 包含完整测试代码和使用示例

C++模板

  • C++模板.md ✅ 已创建(1200+行,Markdown格式)
  • 25+个算法实现
  • 与Python模板完全同步
  • 详细注释和复杂度分析

📊 内容统计(超级详细版)

✅ 已完成(总字数:420,000+字)🆕

🎯 导航和指南(5个文件)

  1. 内容索引.md - 完整目录导航(本文件)
  2. 快速入门.md - 5分钟快速上手
  3. README.md - 学习路线总览
  4. 学习指南.md - 详细学习指南(含学习方法、技巧)
  5. 学习进度.md - 进度追踪表(含里程碑)

📖 阶段一:基础准备(7个超级详解)

1. 复杂度分析
  • 01-复杂度分析.md ⭐⭐⭐⭐⭐
  • 大O表示法详解
  • 时间复杂度:O(1), O(log n), O(n), O(n²), O(2ⁿ)
  • 空间复杂度
  • 复杂度计算技巧
  • 10+道练习题
2. 数组(Array)⭐⭐⭐⭐⭐
  • 02-数组.md 📕 10,000+字
  • 什么是数组(储物柜比喻)
  • 内存结构可视化(详细地址图)
  • 10+种操作详解(每步都有图示)
  • Python list完全指南(15+种操作)
  • C++ array/vector完全指南
  • 5道经典面试题:
    • 两数之和(暴力法、哈希表)
    • 买卖股票最佳时机
    • 最大子数组和(Kadane算法)
    • 删除有序数组重复项
    • 轮转数组(三次翻转)
  • 实战应用:
    • 机器学习数据预处理
    • 滑动窗口技术
    • 前缀和
    • 矩阵操作
  • 15+道练习题
3. 链表(Linked List)⭐⭐⭐⭐⭐
  • 03-链表.md 📕 10,000+字
  • 什么是链表(火车车厢比喻)
  • 内存结构可视化
  • 链表类型(单向、双向、循环)
  • 11种操作详解:
    • 创建、遍历、查找、插入(头部/尾部/指定位置)
    • 删除(头/尾/指定节点)
    • 反转链表(迭代、递归)
    • 合并两个有序链表
  • 5道经典面试题:
    • 判断链表是否有环(快慢指针)
    • 找链表中点
    • 删除倒数第N个节点
    • 回文链表
    • 环形链表II
  • 链表vs数组对比
  • 10+道练习题
4. 栈(Stack)⭐⭐⭐⭐⭐
  • 04-栈.md 📕 15,000+字
  • 什么是栈(一摞盘子比喻)
  • 3种实现方式:
    • Python list(最简单)
    • 链表(高效)
    • C++ STL stack
  • 操作详解(入栈、出栈、查看栈顶,每步都图示)
  • 4大应用详解:
    • 括号匹配(详细版:每一步都展示)
    • 逆波兰表达式(完整过程图解)
    • 最小栈(辅助栈实现)
    • 最长有效括号
  • 3道经典面试题:
    • 用栈实现队列
    • 简化路径
    • 删除相邻重复项
  • 实战练习
5. 队列(Queue)⭐⭐⭐⭐⭐
  • 05-队列.md 📕 15,000+字
  • 什么是队列(排队买票比喻)
  • 3种实现方式:
    • Python deque(推荐)
    • 链表
    • C++ STL queue
  • 操作详解(入队、出队,每步都图示)
  • 3大应用详解:
    • 二叉树层序遍历(详细版:每一步都展示)
    • 滑动窗口最大值(单调队列)
    • 任务调度器
  • 双端队列(Deque)
  • 优先队列(Priority Queue)
  • 循环队列
  • 2道经典面试题:
    • 用队列实现栈
    • 设计循环队列
6. 哈希表(Hash Table)⭐⭐⭐⭐⭐
  • 06-哈希表.md 📕 15,000+字
  • 什么是哈希表(图书馆比喻)
  • 超详细的哈希函数:
    • 除法哈希(含优化)
    • 乘法哈希
    • 字符串哈希(多项式滚动)
  • 哈希冲突详解:
    • 冲突可视化
    • 3种解决方法:
    • 链地址法(完整实现+图解)
    • 开放寻址法(线性、二次、双重哈希)
    • 再哈希(扩容机制)
  • Python dict内部实现
  • 操作详解(插入、查找、删除)
  • 3道经典面试题:
    • 两数之和(含过程演示)
    • 字母异位词分组
    • 最长连续序列
  • 实战应用:
    • LRU缓存(详细实现)
    • 设计推特(简化版)
7. 树(Tree)⭐⭐⭐⭐⭐
  • 07-树.md 📕 25,000+字
  • 树的基础概念(组织结构图示)
  • 二叉树详解
    • 满二叉树、完全二叉树、完美二叉树
    • 二叉树实现(TreeNode类)
    • 4种遍历方式(前、中、后、层序)
    • 每种遍历都有递归+迭代实现
    • 可视化打印树结构
  • 二叉搜索树(BST)
    • BST性质(左<根<右)
    • BST可视化
    • 插入、查找操作(含过程演示)
    • 中序遍历得到有序序列
  • 平衡树
    • 为什么需要平衡
    • AVL树(含4种旋转:LL、RR、LR、RL)
    • 旋转图解
  • 堆和优先队列
    • 大顶堆、小顶堆
    • 堆的实现(heapq)
    • 建堆、入堆、出堆
  • 3道经典面试题:
    • 二叉树最大深度
    • 翻转二叉树
    • 对称二叉树
  • 实战应用

📖 阶段二:核心算法(3个超详解)

8. 排序算法(完全指南)⭐⭐⭐⭐⭐
  • 01-排序算法.md 📕 15,000+字
  • 10种排序算法
    1. 冒泡排序(Bubble Sort)- 含优化
    2. 选择排序(Selection Sort)
    3. 插入排序(Insertion Sort)- 含二分优化
    4. 希尔排序(Shell Sort)- 含间隔序列优化
    5. 归并排序(Merge Sort)- 含原地版
    6. 快速排序(Quick Sort)- 含3种优化
    7. 堆排序(Heap Sort)- 含堆化过程
    8. 计数排序(Counting Sort)
    9. 桶排序(Bucket Sort)
    10. 基数排序(Radix Sort)
  • 每种算法包含:
    • 原理讲解
    • Python实现(详细注释)
    • C++实现
    • 完整排序过程图解
    • 时间/空间复杂度分析
    • 稳定性分析
  • 排序算法对比表
  • 排序算法选择指南(决策树)
  • 6道LeetCode题目详解
9. 搜索算法 ⭐⭐⭐⭐⭐
  • 02-搜索算法.md 📕 15,000+字
  • ✅ 二分搜索基础:标准二分、lower_bound、upper_bound
  • ✅ 二分搜索变种:旋转数组搜索、寻找峰值、查找重复数
  • ✅ BFS进阶:双向BFS、多源BFS、0-1 BFS
  • ✅ DFS进阶:迭代加深搜索(IDS)、启发式搜索
  • ✅ A*算法:原理、启发式函数、路径规划应用
  • ✅ LeetCode题目详解(10+题)
10. 动态规划(完全指南)⭐⭐⭐⭐⭐
  • 03-动态规划.md 📕 20,000+字
  • DP基础概念
  • DP vs 递归 vs 贪心
  • DP解题四步法
  • 20+个经典DP问题详解
    • 入门(5题):爬楼梯、最小花费爬楼梯、打家劫舍、杨辉三角
    • 进阶(10题):零钱兑换、单词拆分、最长递增子序列、LCS、编辑距离、不同路径
    • 困难(5题):目标和、最大正方形、最长有效括号、正则表达式匹配
  • 每题包含:
    • 问题描述
    • 多种解法(递归→记忆化→DP)
    • 完整的状态转移图
    • 详细的代码注释
    • 复杂度分析

📖 阶段三:进阶算法

11. 图算法(完全指南)⭐⭐⭐⭐⭐
  • 01-图算法.md 📕 25,000+字
  • 图的基础概念(社交网络比喻)
  • 图的表示方法:
    • 邻接矩阵(O(V²)空间,稠密图)
    • 邻接表(O(V+E)空间,稀疏图)⭐
    • Python字典实现(更灵活)
  • 图的遍历:
    • DFS(深度优先搜索):递归+迭代实现
    • BFS(广度优先搜索):分层遍历、最短路径
  • 最短路径算法:
    • Dijkstra算法:非负权图,O((V+E)log V),含优先队列优化
    • Bellman-Ford算法:负权边处理,O(VE),负权环检测
    • Floyd-Warshall算法:所有顶点对,O(V³)
  • 最小生成树(MST):
    • Prim算法:顶点增长,O((V+E)log V),适合稠密图
    • Kruskal算法:边增长,O(E log E),含并查集,适合稀疏图
  • 拓扑排序:
    • Kahn算法(BFS实现)
    • 应用:课程安排、任务调度、编译依赖
  • A*算法(启发式搜索)
  • 2道经典面试题:
    • 课程表(拓扑排序)
    • 网络延迟时间(Dijkstra)
  • 实战应用:城市导航系统
12. 贪心算法(完全指南)⭐⭐⭐⭐⭐
  • 02-贪心算法.md 📕 15,000+字
  • 贪心算法核心思想(局部最优→全局最优)
  • 贪心解题四步法
  • 8大经典问题
    • 活动选择问题(按结束时间贪心)
    • 区间调度问题(无重叠区间,LeetCode 435)
    • 跳跃游戏I&II(LeetCode 55, 45)
    • 霍夫曼编码(数据压缩)
    • 分数背包问题(按单价贪心)
    • 最优合并问题
    • 加油站问题(LeetCode 134)
    • 分发糖果(LeetCode 135)
  • LeetCode高频真题
    • 摆动序列(LeetCode 376)
    • 单调递增的数字(LeetCode 738)
    • 种花问题(LeetCode 605)
  • 贪心vs动态规划对比
  • 何时能用/不能用贪心
13. 字符串算法(完全指南)⭐⭐⭐⭐⭐
  • 03-字符串算法.md 📕 20,000+字
  • 字符串基础(内存表示、匹配问题定义)
  • 暴力匹配算法:O(mn),简单直观
  • KMP算法⭐⭐⭐⭐⭐:
    • next数组(前缀表)计算详解
    • 利用已匹配信息
    • 保证O(m+n)时间
    • 面试必考!
  • Rabin-Karp算法
    • 滚动哈希
    • 适合多模式匹配
    • 哈希冲突处理
  • Boyer-Moore算法
    • 从右向左匹配
    • 坏字符规则
    • 实际应用最快
  • Sunday算法:Boyer-Moore改进,关注窗口后字符
  • 字符串处理技巧
    • 双指针(回文检测)
    • 滑动窗口(最长无重复子串)
    • 前缀和哈希
  • LeetCode高频真题
    • 最长公共前缀(LeetCode 14)
    • 反转字符串(LeetCode 344)
    • 字符串相乘(LeetCode 43)
  • 算法对比总结(选择建议)
14. 回溯算法(完全指南)⭐⭐⭐⭐⭐
  • 04-回溯算法.md 📕 15,000+字
  • 回溯算法基础(DFS + 剪枝)
  • 回溯 vs 递归 vs DFS
  • 全排列问题(LeetCode 46):
    • 标准全排列(used数组法)
    • 交换法优化
    • 包含重复数字的全排列(LeetCode 47)
  • 组合问题(LeetCode 77):
    • 从n个数选k个组合
    • 剪枝优化
  • 子集问题(LeetCode 78):
    • 所有子集生成
    • 回溯树图解
  • N皇后问题⭐⭐⭐⭐⭐(LeetCode 51):
    • 经典回溯问题
    • 约束:行列斜线互不攻击
    • 完整递归树图解
  • 括号生成(LeetCode 22):
    • 合法括号生成
    • 卡特兰数
  • 分割回文串(LeetCode 131):
    • 回文判断
    • 分割方案
  • LeetCode高频真题
    • 组合总和(LeetCode 39, 40)
    • 单词搜索(LeetCode 79)
    • 复原IP地址(LeetCode 93)
  • 回溯优化技巧:剪枝、排序去重、双向搜索
15. 并查集(Union-Find)⭐⭐⭐⭐⭐ 🆕
  • 05-并查集.md 📕 8,000+字 🆕
  • ✅ 并查集基础概念(社交网络比喻)
  • ✅ 基本实现:Quick Find、Quick Union
  • 优化策略
    • 按秩合并(Union by Rank)
    • 路径压缩(Path Compression)
    • 终极版本:两者结合
  • 应用场景
    • 连通分量检测(省份数量)
    • 最小生成树(Kruskal算法)
    • 最近公共祖先(离线算法)
    • 图像连通区域标记
  • LeetCode高频真题(5题):
    • 省份数量(LeetCode 547)
    • 冗余连接(LeetCode 684)
    • 账户合并(LeetCode 721)
    • 最长连续序列(LeetCode 128)
    • 岛屿数量II(LeetCode 305)
  • 时间复杂度分析:均摊O(α(n)),近似O(1)
  • 实战案例:社交网络好友推荐、图像处理
16. Trie树(前缀树)⭐⭐⭐⭐⭐ 🆕
  • 06-字典树.md 📕 10,000+字 🆕
  • ✅ Trie树基础概念(自动补全比喻)
  • ✅ 节点结构详解
  • 核心操作
    • 插入:O(m)
    • 搜索:O(m)
    • 前缀匹配:O(m)
  • Trie树变种
    • 压缩Trie
    • 带权Trie(自动补全排序)
  • 应用场景
    • 自动补全/搜索建议
    • 拼写检查
    • IP路由(最长前缀匹配)
    • DNA序列分析
  • LeetCode高频真题(5题):
    • 实现Trie(LeetCode 208)
    • 单词搜索II(LeetCode 212)
    • 添加与搜索单词(LeetCode 211)
    • 键值映射(LeetCode 677)
    • 搜索推荐系统(LeetCode 1268)
  • Python和C++双语言完整实现
17. 线段树与树状数组 ⭐⭐⭐⭐⭐ 🆕
  • 07-线段树.md 📕 12,000+字 🆕
  • ✅ 线段树基础(区间查询/修改)
  • ✅ 线段树实现:
    • 建树:O(n)
    • 区间查询:O(log n)
    • 单点修改:O(log n)
    • 区间修改(懒标记):O(log n)
  • ✅ 树状数组(Fenwick Tree):
    • lowbit运算详解
    • 前缀和查询:O(log n)
    • 单点修改:O(log n)
  • 对比与选择指南
    • 前缀和+单点修改 → 树状数组
    • 区间修改 → 线段树
  • LeetCode高频真题
    • 区域和检索-数组可修改(LeetCode 307)
    • 计算右侧小于当前元素的个数(LeetCode 315)
    • 最长递增子序列(树状数组优化)
  • Python和C++双语言完整实现
18. 数学算法 ⭐⭐⭐⭐ 🆕
  • 08-数学算法.md 📕 8,000+字 🆕
  • 数论基础
    • 质数判断:O(√n)
    • 埃氏筛:O(n log log n)
    • 线性筛(欧拉筛):O(n)
    • GCD和LCM
  • 快速幂
    • 原理:二进制分解
    • 时间:O(log n)
    • 应用:大数幂运算
  • 组合数学
    • 组合数预处理:O(n)
    • 卡特兰数
  • 位运算技巧
    • lowbit:x & (-x)
    • 清除最低位1:x & (x-1)
    • 判断2的幂
  • LeetCode高频真题
    • Pow(x, n)(LeetCode 50)
    • 计数质数(LeetCode 204)
    • 超级次方(LeetCode 372)
  • Python和C++双语言完整实现

📖 阶段四:实战强化

15. LeetCode 100+题详解 ⭐⭐⭐⭐⭐
  • 01-LeetCode精选100题.md 📕 35,000+字
  • 数组(10题)
    • 两数之和(暴力、哈希表、双指针)
    • 买卖股票的最佳时机(暴力、一次遍历)
    • 最大子数组和(Kadane算法、分治法)
    • 删除有序数组中的重复项(双指针)
    • 轮转数组(三次翻转、额外数组)
    • 除自身以外数组的乘积(左右乘积列表)
    • 三数之和(排序+双指针)
    • 搜索二维矩阵II(从右上角搜索)
    • 合并区间(排序+遍历)
    • 矩阵置零(首行首列标记)
  • 链表(5题)
    • 反转链表(迭代、递归)
    • 合并两个有序链表
    • 环形链表(快慢指针)
    • 环形链表II(快慢指针+数学证明)
    • 回文链表(反转后半部分)
  • 树(5题)
    • 二叉树的最大深度(递归)
    • 验证二叉搜索树(递归+上下界)
    • 对称二叉树(递归)
    • 层序遍历(BFS)
    • 二叉树展开为链表(迭代)
  • 动态规划(5题)
    • 爬楼梯(DP、矩阵快速幂)
    • 打家劫舍(DP优化)
    • 零钱兑换(DP)
    • 最长递增子序列(DP、二分查找)
    • 完全平方数(DP)
  • 图(3题)
    • 课程表(拓扑排序)
    • 课程表II(拓扑排序)
    • 被围绕的区域(DFS标记)
  • 排序/搜索(7题)
    • 合并两个有序数组(从后向前)
    • 第一个错误的版本(二分查找)
    • 搜索插入位置(二分查找)
    • 搜索二维矩阵(二分查找)
    • 查找元素的第一个和最后一个位置(两次二分)
    • 寻找峰值(二分查找)
  • ✅ 每题包含:问题描述、多种解法、执行过程演示、复杂度分析
  • ✅ 面试高频题Top 20标注
  • ✅ 刷题策略(按难度、按标签、重复刷题)
  • 回溯算法基础(DFS + 剪枝)
  • 回溯 vs 递归 vs DFS
  • 全排列问题(LeetCode 46):
    • 标准全排列(used数组法)
    • 交换法优化
    • 包含重复数字的全排列(LeetCode 47)
  • 组合问题(LeetCode 77):
    • 从n个数选k个组合
    • 剪枝优化
  • 子集问题(LeetCode 78):
    • 所有子集生成
    • 回溯树图解
  • N皇后问题⭐⭐⭐⭐⭐(LeetCode 51):
    • 经典回溯问题
    • 约束:行列斜线互不攻击
    • 完整递归树图解
  • 括号生成(LeetCode 22):
    • 合法括号生成
    • 卡特兰数
  • 分割回文串(LeetCode 131):
    • 回文判断
    • 分割方案
  • LeetCode高频真题
    • 组合总和(LeetCode 39, 40)
    • 单词搜索(LeetCode 79)
    • 复原IP地址(LeetCode 93)
  • 回溯优化技巧:剪枝、排序去重、双向搜索

🛠️ 代码模板(2个可运行文件,已更新)

  1. Python模板.md - Python模板(1500+行,Markdown格式)✅
  2. ✅ 原有内容:排序、搜索、DP、数据结构、工具函数
  3. 新增
    • 回溯算法(全排列、组合、子集、括号生成)
    • 字符串算法(KMP、Manacher)
    • 大厂高频题(两数之和、最大子数组和、接雨水、最长有效括号、滑动窗口最大值、岛屿数量、零钱兑换、最长递增子序列)
  4. ✅ 所有函数包含详细注释和时间/空间复杂度分析
  5. ✅ 包含使用示例和学习建议

  6. C++模板.md - C++模板(1200+行,Markdown格式)✅

  7. ✅ 原有内容:排序、搜索、DP、数据结构、工具函数
  8. 新增:回溯算法、数学算法、线段树、树状数组
  9. ✅ 所有函数包含详细注释和时间/空间复杂度分析
  10. ✅ 包含竞赛编程模板头和使用建议

🎯 学习建议

新手路径

Text Only
第1周:复杂度分析 + 数组
  ├─ 阅读 01-复杂度分析.md
  ├─ 阅读 02-数组.md
  └─ 完成5道练习题

第2周:链表 + 栈队列
  ├─ 阅读 03-链表.md
  ├─ 阅读 04-栈.md
  ├─ 阅读 05-队列.md
  └─ 完成10道练习题

第3-4周:排序算法
  ├─ 阅读 01-排序算法.md
  ├─ 手写每种排序3遍
  └─ 完成10道练习题

第5-6周:搜索算法
  ├─ 阅读 02-搜索算法.md
  ├─ 二分搜索、BFS、DFS各写10遍
  └─ 完成15道LeetCode题

第7-9周:动态规划
  ├─ 阅读 03-动态规划.md
  ├─ 完成20道DP题
  └─ 总结DP模式

第10周+:进阶算法 + 刷题
  ├─ 图算法、贪心算法等
  └─ LeetCode刷题100+

每日学习计划

Text Only
工作日(30-60分钟):
- 15分钟:阅读学习资料
- 30分钟:手写代码实现
- 15分钟:LeetCode练习(1-2题)

周末(60-90分钟):
- 30分钟:复习本周内容
- 30分钟:刷题(3-5题)
- 30分钟:总结笔记

💡 使用技巧

1. 配合代码模板

  • 先看理论讲解
  • 再看代码模板
  • 自己实现一遍
  • 对比参考代码

2. 正确使用AI工具

❌ 不要:直接让AI写代码 ✅ 应该: - 让AI解释你不理解的概念 - 让AI检查你的代码逻辑 - 让AI给出变式题目

3. 记录进度

  • 每完成一个主题,在学习进度.md中勾选
  • 每周记录学习心得
  • 设置阶段性目标

📞 获取帮助

遇到问题?

  1. 先查看对应的学习资料
  2. 运行代码模板
  3. 使用AI工具辅助理解
  4. 在LeetCode讨论区提问

提问模板

Text Only
## 问题描述
我正在学习XX算法,遇到了XX问题

## 我的理解
我认为...(描述你的理解)

## 我的尝试
我尝试了...(描述你的尝试)
代码如下:
```text
# 你的代码
```

## 我的困惑
我不明白为什么...(具体问题)

🎉 持续更新

本学习系统会持续更新,计划添加: - ✅ 更多算法详解 - ✅ 更多练习题 - ✅ 更多LeetCode题解 - ✅ AI/ML应用案例 - ✅ 可视化动画 - ✅ 视频讲解链接


现在就开始你的算法学习之旅吧!🚀

快速入门.md 开始,5分钟快速上手!