Algorithm topic

:模式识别与解题模板

本专题包含 6 道题。先辨认输入结构和目标,再选择能够持续保持关键不变量的算法,而不是只记住某一道题的代码。

高频模式

深度优先搜索6 道题

观察题目是否反复出现“深度优先搜索”对应的数据访问、状态压缩或边界推进特征。

广度优先搜索6 道题

观察题目是否反复出现“广度优先搜索”对应的数据访问、状态压缩或边界推进特征。

4 道题

观察题目是否反复出现“”对应的数据访问、状态压缩或边界推进特征。

并查集3 道题

观察题目是否反复出现“并查集”对应的数据访问、状态压缩或边界推进特征。

数组3 道题

观察题目是否反复出现“数组”对应的数据访问、状态压缩或边界推进特征。

矩阵2 道题

观察题目是否反复出现“矩阵”对应的数据访问、状态压缩或边界推进特征。

核心模板

  1. 先写清输入规模、目标值和允许修改的数据。
  2. 定义每一步开始和结束时必须成立的不变量。
  3. 把循环、递归、队列或状态转移拆成可验证事件。
  4. 用最小输入、重复值和退化结构验证边界。

常见错误

  • 只根据样例选择算法,没有核对复杂度上限。
  • 更新多个指针或状态时破坏旧值依赖。
  • 忽略空输入、重复值、断开结构或极端顺序。
  • 代码结果正确,但解释没有说明为什么不会漏解或重复。

代表题

#200 · MEDIUM

岛屿数量

计算由上下左右相连陆地组成的岛屿数量。

深度优先搜索广度优先搜索并查集数组矩阵
#130 · MEDIUM

被围绕的区域

把不与边界相连的 O 区域填成 X。

深度优先搜索广度优先搜索并查集数组矩阵
#133 · MEDIUM

克隆图

深拷贝一个无向连通图。

深度优先搜索广度优先搜索哈希表
#399 · MEDIUM

除法求值

根据变量比值图回答除法查询。

深度优先搜索广度优先搜索并查集数组字符串最短路
#207 · MEDIUM

课程表

判断所有课程是否可以修完。

深度优先搜索广度优先搜索拓扑排序
#210 · MEDIUM

课程表 II

返回一种可修完全部课程的顺序。

深度优先搜索广度优先搜索拓扑排序
查看本分类全部 6 道题