这是一套按技法拆分的 LeetCode 学习文档,每篇文章深入讲解一种算法思想。

文档使用方式

  1. 遇到题目先判断题型,跳转对应文档
  2. 先看"30 秒速览"和"直觉建立"
  3. 理解核心原理和模板
  4. 做典型例题,理解易错点
  5. 用复盘清单自检

文章目录

数组与查找

技法文章核心内容
二分查找lc-binary-search红蓝染色法、开区间模板、二分答案
双指针lc-two-pointers相向/同向/快慢指针、三数之和
滑动窗口lc-sliding-window求最长 vs 求最短、更新时机
前缀和与差分lc-prefix-sum区间和 O(1) 查询、差分数组

基础数据结构

技法文章核心内容
哈希表lc-hash-map查找、计数、分组三大场景
链表lc-linked-list虚拟头、反转、快慢指针
lc-stack括号匹配、单调栈
队列与堆lc-queue-heap单调队列、Top K、对顶堆
字典树lc-trie前缀匹配、词频统计

字符串

技法文章核心内容
字符串基础lc-string-basicsKMP、回文、大数运算

树与图

技法文章核心内容
二叉树lc-binary-tree递归三要素、遍历、路径问题
DFS 与 BFSlc-dfs-bfs搜索模板、最短路径
图论基础lc-graph-basics拓扑排序、并查集
最短路径lc-shortest-pathDijkstra、Bellman-Ford、Floyd

搜索与回溯

技法文章核心内容
回溯lc-backtracking排列/组合/子集、剪枝去重

动态规划

技法文章核心内容
DP 入门lc-dp-introDP 五步法、线性/网格 DP
背包问题lc-dp-knapsack01 背包、完全背包
子序列 DPlc-dp-subsequenceLIS、LCS、编辑距离
区间 DPlc-dp-interval回文 DP、区间合并
状态机 DPlc-dp-state-machine股票系列、打家劫舍

高级技法

技法文章核心内容
贪心lc-greedy区间调度、跳跃游戏、股票
位运算lc-bit-manipulation异或、位操作、状态压缩

统一解题流程

1) 识别题型信号

  • 数组有序或有单调性 → 二分
  • 需要同时考虑两端 → 双指针
  • 连续子数组/子串 → 滑动窗口
  • 频繁区间和查询 → 前缀和
  • 需要快速查找 → 哈希表
  • 字符串匹配 → KMP/字典树
  • 树形结构 → 递归/DFS/BFS
  • 图关系 → DFS/BFS/并查集/拓扑排序
  • 求所有方案 → 回溯
  • 最值+重叠子问题 → DP
  • 每步局部最优 → 贪心
  • 位操作/状态压缩 → 位运算

2) 套用模板

每种技法都有标准模板,先背模板,再理解原理。

3) 注意边界

  • 空输入
  • 单元素
  • 所有元素相同
  • 负数(滑动窗口失效)
  • 大数/溢出

4) 复盘总结

每篇文章末尾都有复盘清单,做完题后自检。

学习建议

  1. 按顺序学:数组 → 数据结构 → 字符串 → 树图 → 搜索 → DP → 高级
  2. 先理解再写代码:不要背题,理解思想
  3. 画图:链表、树、DP 都要画图
  4. 总结模板:建立自己的模板库
  5. 定期复习:遵循遗忘曲线

文章统计

  • 总计:23 篇文章
  • 覆盖:数组、字符串、链表、树、图、DP、贪心、位运算等核心技法
  • 每篇包含:30 秒速览、直觉建立、核心原理、典型例题、易错点、复盘清单、题目清单