Skip to content

算法与数据结构 ​

通用算法与数据结构知识库(刷题向),面向求职面试与算法入门,正文统一用 Python 伪代码示意,复杂度一律用表格给出。


定位 ​

  • 本系列讲的是脱离具体语言、可迁移到任何面试场景的通用算法知识:复杂度分析、数据结构选型、树与图、排序与查找、动态规划与回溯、高频套路。
  • 定位是「面试 + 刷题」:每篇正文按「识别特征 → 思路 → 模板伪代码 → 复杂度表 → 代表题」组织,可直接对着力扣(LeetCode)、牛客刷题使用。
  • 分工说明:本系列只讲算法本身,不绑定语言框架;Java 集合类、并发、JVM 等见后端 Java 笔记。

使用建议(刷题向) ​

  1. 先读 复杂度分析:没有复杂度概念,无法判断一个解法「能不能过数据规模」。
  2. 再读 常用数据结构:熟练数组/链表/栈/队列/哈希表/堆的原理、API 与复杂度。
  3. 分专题推进:树与图 → 排序与查找 → 动态规划与回溯 → 高频算法题套路。
  4. 刷题时:先看 高频算法题套路 的「识别特征」命中题型,再套模板,最后去力扣/牛客验证。
  5. 复盘时:把每道错题归类到对应套路下,逐步形成自己的「题感清单」。
  6. 要练手写实现:手写题清单 的 12 段关掉编辑器敲一遍;临场发挥看 面试手撕现场。

目录覆盖表 ​

文件覆盖内容优先级
复杂度分析大 O、时间/空间复杂度、主定理简介、最好/最坏/平均/均摊、易错点★★★ 最先读
常用数据结构数组/链表/栈/队列/哈希表/堆:原理、复杂度表、API、典型坑★★★
树与图二叉树四种遍历、BST、平衡树、堆;图遍历、拓扑排序、Dijkstra、并查集★★★
排序与查找八大排序思路与对比总表、TopK、二分查找变体、外排序★★★
动态规划与回溯DP 五步法、四大经典题拆解、记忆化搜索、回溯框架与剪枝★★☆
高频算法题套路双指针、滑动窗口、前缀和/差分、单调栈、BFS/DFS 模板、位运算、TopK★★★ 常翻
手写题清单单例、生产者消费者、LRU、线程池、快排、二分、TopK、反转链表等 12 段模板★★★ 面试前必过
LeetCode 分类题解10 类套路的识别特征 + 模板 + 每类 5 道代表题★★★ 刷题用
面试手撕现场读题确认、说思路、白板写法、卡住怎么办、边界自查、常见追问★★☆ 临场前看

刷题路线一句话 ​

先会「遍历与暴力」(数组、链表、树、BFS/DFS),再会「有序加速」(二分、排序、堆),最后攻克「状态与决策」(DP、回溯)——分组路线详见高频算法题套路 最后一节。