导读与学习路线

面试前的速成路线

这条路线为谁准备

已经排上面试、留给算法的时间以周计而不是以月计的人。

如果你时间充裕,别看这一篇,回去按目录顺序读 —— 速成路线是拿覆盖面换时间,跳过的部分不是不重要,是来不及。

先认清一件事

算法能力和编程经验没有直接关系。工作里天天写业务代码的人, 第一次做算法题一样卡住,这很正常,它是一种需要单独练的能力。

反过来说也成立:正因为它是独立的一块,短时间集中练是有效的。 面试考的大多是有固定套路的题型,认出套路 → 套模板,这条路能走通八成。

按顺序练这几套模板

这个顺序不是按难度排的,是按依赖排的——每一套都用得上前一套的东西。

  1. 双指针 —— 数组和链表题的第一反应,覆盖面最大
  2. 滑动窗口 —— 双指针的一个特例,子串子数组类题目几乎全靠它
  3. 二分搜索 —— 不只是“在有序数组里找数”,很多最值问题能转成它
  4. 递归与二叉树 —— 别赶这一章。后面的回溯、DFS、分治、动规全是它的变形
  5. 回溯 / DFS —— 排列组合子集这一类,模板高度统一
  6. 动态规划 —— 最费时间的一块,先把框架吃透再看具体题型

⭐ 第 4 条是这条路线里最容易被跳过、也最不该跳的一步。 省下的那两天,会在第 5、6 两条上加倍还回去。

哪些可以先跳过

  • 排序算法的手写实现(面试问原理多,让你现场手写快排的少)
  • 高级数据结构里的线段树、树状数组(出现频率低,但「前缀和不支持修改」这一句要知道;字典树倒是值得看)
  • 图论里的最小生成树、最短路(除非岗位明确相关)

⚠️ “跳过”指的是这一轮跳过,不是这些东西不值得学。

每套模板练多少题

一套模板配 5~8 道题,练到看见题目能直接反应出用哪套,就够了。

📌 关键不是题量,是同一套模板重复足够多次。刷 50 道各不相同的题, 不如刷 30 道分成 5 组、每组同一个套路的题。前者练的是运气,后者练的是肌肉记忆。

刷完之后

按题型查框架用高频题怎么刷那一篇 —— 它是一张「题干长什么样 → 该看哪一篇」的反查表。