MQMarshall Qiao

学算法模式,而不是刷一千道题

一套以「回忆」为核心的方法,把 LeetCode 练习变成面试中可复用的决策。

算法面试准备

刷得多可以带来熟悉感,却未必带来回忆能力。面试里真正有用的技能,是识别约束、选择模式,并解释复杂度为什么成立。

按决策模式归档

用一组不大的模式族:

  • 哈希与频次表;
  • 双指针与滑动窗口;
  • 在值域或答案上二分;
  • 单调栈与单调队列;
  • 树与图的遍历;
  • 堆与 Top-K 选择;
  • 区间与扫描线;
  • 按状态与转移组织的动态规划。

每个模式族保留一道范式题、一道变体,和一份简短的触发条件清单。比如「连续区间 + 右指针右移时某个约束保持成立」就应该触发一次滑动窗口的检查。

练习「讲解回路」

写代码之前,先说出来:

  1. 暴力解法及其代价;
  2. 你可以利用的重复计算或结构;
  3. 所选模式维持的不变量;
  4. 时间与空间复杂度;
  5. 可能破坏不变量的边界情况。

这段推理往往比默默想出一个巧解更有价值。

按周期回访

解完一题后,分别在一天、一周、一个月后从空白编辑器重做一遍。如果复现不出这个模式,记下漏掉的那个触发条件——而不是整份题解。

目标不是背下代码,而是缩短「从线索到解法」的路径。

相关文章

  1. 2 分钟阅读面试实验室

    真正体现资深度的行为面试故事

    STAR 之所以有力,是因为它能暴露判断力、影响范围、取舍,以及事后你改变了什么。

  2. 3 分钟阅读面试实验室

    系统设计演练:高吞吐规则引擎

    在 45 分钟的系统设计面试里,如何组织需求、数据流、扩展性、正确性与运维。

在做类似的事情?

很乐意就分布式系统、交付流程和应用 AI 交换意见。

qiaoyuanshou@gmail.com