跳转至

完整学习目录导航


📚 现有学习资源

🎯 快速开始


📖 阶段一:基础准备

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 分钟快速上手!