算法学习不是记答案,而是把题目翻译成模型。数组与字符串常对应双指针、滑动窗口和前缀和;有序性提示二分;“所有方案”常用回溯;局部选择可能是贪心;重复子问题则指向动态规划。树和图的核心是 DFS、BFS,优先队列适合持续取得极值,并查集适合动态连通。

一条有效路线是先掌握复杂度、数组、链表、栈、队列和哈希表,再学习排序、二分、递归与树遍历,最后进入回溯、贪心、动态规划和图算法。每学一种方法,都应整理四件事:适用信号、不变量、标准步骤、时间与空间代价。做题时先写暴力方案,它给出正确性基线;随后寻找重复计算、无效枚举或可利用的顺序。

通用过程可写成:明确输入输出和边界;估算规模允许的复杂度;选择数据结构;写出循环或递归不变量;用空输入、单元素、重复值和极端值验证;最后分析复杂度。错题复盘应记录“为何没识别模型”,而不是抄代码。

常见误区包括只刷数量、不隔日重做;背模板却不知道退出条件;把哈希操作永远视为 O(1);过早追求最优而没有可运行基线。面试表达也应先说思路与正确性,再写代码和测试。

小结:题库只是训练素材,真正可迁移的是模型、不变量和复杂度意识。能从新题中识别旧结构,才算形成算法能力。