学算法模式,而不是刷一千道题
一套以「回忆」为核心的方法,把 LeetCode 练习变成面试中可复用的决策。
刷得多可以带来熟悉感,却未必带来回忆能力。面试里真正有用的技能,是识别约束、选择模式,并解释复杂度为什么成立。
按决策模式归档
用一组不大的模式族:
- 哈希与频次表;
- 双指针与滑动窗口;
- 在值域或答案上二分;
- 单调栈与单调队列;
- 树与图的遍历;
- 堆与 Top-K 选择;
- 区间与扫描线;
- 按状态与转移组织的动态规划。
每个模式族保留一道范式题、一道变体,和一份简短的触发条件清单。比如「连续区间 + 右指针右移时某个约束保持成立」就应该触发一次滑动窗口的检查。
练习「讲解回路」
写代码之前,先说出来:
- 暴力解法及其代价;
- 你可以利用的重复计算或结构;
- 所选模式维持的不变量;
- 时间与空间复杂度;
- 可能破坏不变量的边界情况。
这段推理往往比默默想出一个巧解更有价值。
按周期回访
解完一题后,分别在一天、一周、一个月后从空白编辑器重做一遍。如果复现不出这个模式,记下漏掉的那个触发条件——而不是整份题解。
目标不是背下代码,而是缩短「从线索到解法」的路径。
相关文章
真正体现资深度的行为面试故事
STAR 之所以有力,是因为它能暴露判断力、影响范围、取舍,以及事后你改变了什么。
系统设计演练:高吞吐规则引擎
在 45 分钟的系统设计面试里,如何组织需求、数据流、扩展性、正确性与运维。
在做类似的事情?
很乐意就分布式系统、交付流程和应用 AI 交换意见。