本章要回答的三个问题:拿到一个没见过的问题,如何下手而不是发呆?数据结构与算法到底在面试之外有什么用?一场调试打到深夜还没头绪时,有没有比"再试试"更靠谱的战术?
前四章练出的能力,最终都要在"独立解决一个没见过的问题"这场 Boss 战里验收。Boss 战的特点是没有攻略可抄:题目不会告诉你用哈希表还是双指针,报错不会告诉你根因在第几行。很多学习者倒在这一关,不是知识不够,而是缺一套战术:怎么把大问题切成小问题,怎么凭复杂度判断选型,怎么在信息不全时系统化地缩小包围圈,以及打完之后怎么把经验固化下来。本章四节就是这套战术的四个部分。
| 节 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 5.1 问题分解与抽象 | 没见过的题怎么下手 | 分解四步法与抽象示例全过程 |
| 5.2 算法与数据结构基础 | 选型依据是什么 | 常见结构的复杂度对照与实例 |
| 5.3 调试技巧与策略 | 卡死时怎么打 | 系统化调试流程与实战战例 |
| 5.4 持续改进与优化 | 打完怎么变强 | 复盘模板与指标追踪脚本 |

可考核知识点分四组:能执行分解四步(一句目标、按数据流切、每步定验收、按依赖排序先通细通路),并把一个一句话需求落成带验收的任务清单;能说出抽象三动作(定输入输出、提炼规则、命名收窄)各自消灭的模糊性,并把一条自然语言规则改写成可判定的规格;能读复杂度的量级含义,用"操作成本对照"为高频操作选结构,并能复述两数之和从平方到线性的改写思路;能列出 Heisenbug 的四种典型成因(未初始化状态、时序竞争、隐式依赖、边界数据),并说出"驯化优先"的理由;能默写复盘四问(症状根因、瓶颈在哪、下次第一步、知识缺口)及各问产物的去向。四组能力分别对应下手、选型、硬仗、沉淀,是一场完整 Boss 战的四个阶段。
算法要刷多少题才算过关? 题量不是指标,弱点标签清零才是。五六十道高质量分区练习(按 2.3 节学习区筛选)足以覆盖常见模式;无边际的题海只会制造"很努力"的错觉。
面试要考算法,平时用不上还要学吗? 用得上——5.2 节的选型失误在真实项目里就是性能事故。把目标从"通过面试"换成"给高频操作选对结构",学习的体感与收益都会不同。
复盘多久做一次? 每场硬仗(超两小时的调试、一个项目周期结束)后立刻做一次十五分钟四问;每月把复盘记录汇总跑一次模式统计。节奏比单次深度更重要。
本章练出的分解、选型、调试、复盘四项能力,就是第六章"满级之后"的转职资本:任何进阶方向(前端、后端、数据、运维)的面试与实战,考的仍是这四件事,只是换了场景和规模。