200字
备忘录-
2025-11-30
2025-11-30

知乎:https://zhuanlan.zhihu.com/p/1976240523925800453

第一层:基础能力层 - 你的“武器库”

这是你的基本盘,是你解所有题的武器。这个阶段没有捷径,就是把基础打牢。根据我和朋友们面试的经验,以下这些是必须滚瓜烂熟的:

  • 基础数据结构:数组、链表、栈、队列、哈希表(Map/Set)、堆(优先队列)。你要对它们的时间、空间复杂度了如指掌。

  • 核心算法思想:

  • 模拟(Simulation):这是100分题目的主力,考验的就是你把复杂文字逻辑翻译成代码的细心程度。

  • 字符串处理:各种API、正则表达式,OD机考里字符串题占比极高。

  • 排序与贪心(Sorting & Greedy):很多题目看似复杂,排序后思路就豁然开朗,局部最优解往往能推出全局最优解。

  • 搜索(DFS/BFS):这是200分难题的常客。矩阵/迷宫问题、组合排列问题、图的遍历,必须能用模板秒写。

  • 动态规划(DP):硬骨头,但也是高分关键。不需要啃骨灰级的难题,但经典的背包问题、路径问题、最长子序列等模型一定要理解透彻。

  • 双指针/滑动窗口:处理数组和字符串问题的利器,能极大地优化时间复杂度。

第二层:题型识别层 - 你的“雷达”

这是从“会做”到“会思考”的关键一步。当你刷了足够多的题后,你需要开始总结规律,给自己训练出一个“题型雷达”。

  • 看到“求最短/最少/最小…”,立刻想到 BFS 或 动态规划。

  • 看到“迷宫”、“连通性”、“所有方案”,立刻想到 DFS + 回溯。

  • 看到“子数组/子串相关”,立刻想到 滑动窗口 或 前缀和。

  • 看到“在 O(1) 空间内完成”,立刻想到用 原地修改 或 位运算。

  • 看到“第k大/中位数”,立刻想到 堆(优先队列) 或 快速选择。

当你能做到看到题目描述,脑子里就能自动弹出两三个备选的算法模型时,你就已经成功了一大半。无论题目怎么换,内核往往万变不离其宗。

第三层:编码实现层 - 你的“肌肉记忆”

光有思路不行,还得能快速、准确地写出来。这一层考验的是你的工程能力。

  • 输入输出处理:这是新手的第一个坎。无论是哪种语言,先把标准的输入输出模板(读取多行、读取逗号/空格分割的数组等)背得滚瓜烂熟,形成肌肉记忆。考试时因为这个卡住,心态最容易崩。

  • 边界条件处理:空数组、空字符串、索引越界、数值溢出… 面试官在看你的代码时,最关注的就是这些细节。养成习惯,写函数第一件事就是处理边界。

  • 代码模板化:对于DFS、BFS、并查集、二分查找这类代码结构相对固定的算法,自己总结一套最顺手的模板。考试时直接默写框架,然后往里填核心逻辑,能节省大量时间。

三、实战冲刺策略:最后一周,我该做什么?

假设你还有一周就要考试,怎么安排最高效?

  • Day 1-2: 高频老题 + 错题回顾 把B卷题库里出现频率最高题型的前50道题快速过一遍,确保每一道都能在15-20分钟内写完。同时,把自己之前做错的题拿出来,重新做一遍,分析当时为什么错。

  • Day 3-5: 专项突破 + 新题攻坚 根据自己的薄弱环节进行专项训练。DP不行就专门刷一天DP,DFS不熟就专门练一天回溯。同时,开始接触B卷的新题,不要追求数量,而是要做一道,理解透一道,思考它属于哪个题型,用了哪些基础算法,有没有更优解。

  • Day 6: 至少两次全真模拟 这是最最重要的一步!找一个不被打扰的下午,严格按照150分钟的时间,完整地做一套三道题的模拟卷。目的是:

  1. 模拟压力:感受时间压力下的思维和编码状态。

  2. 测试策略:是先秒100分的,还是先开200分的?找到最适合自己的做题顺序。

  3. 演练Debug:当用例不过时,如何快速定位问题?是打印log,还是本地构造小样本?提前演练。

  • Day 7: 复盘调整,轻装上阵 把模拟考中暴露的问题再看一遍,主要是复盘,不要再做新题了。调整好心态,保证充足睡眠。相信自己的体系,而不是去赌某道原题。

备忘录-
作者
Shisuiyi
发表于
2025-11-30
License
CC BY-NC-SA 4.0

评论