| name | algorithm-review |
| description | 当 docs 目录下的文件发生变更时,自动审查侧边栏配置和算法题解的 @description 完整性(时间/空间复杂度及推导过程)。 |
算法题解审查 Skill
触发条件
当 docs 目录下的文件发生变更(新增、修改、删除)时,自动触发此 skill。
职责
1. 侧边栏(_sidebar.md)检查与更新
当 docs 目录下发生以下情况时,必须更新 docs/_sidebar.md:
- 新增
.md 题解文件
- 重命名
.md 文件
- 删除
.md 文件
排序规则:
- 剑指 Offer(放在最前面)
- 剑指 offer(小写/无空格)按数字排序:3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 27, 64
- 剑指 Offer 带题号按数字排序:28, 32-II, 42, 47, 48, 50, 54, 55-I, 55-II, 57-II, 68-I, 68-II
- 剑指 Offer II 按数字排序:052, 056, 059
- LeetCode 题解 - 按题号数值大小排序
- LCP / LCR / 面试题 - LCP/LCR 按数字排序,面试题按数字排序
- 其他 - 如各大排序算法、template 等
标题格式:sidebar 中的链接标题必须参考对应题解文件第一行 # [XX. 题目标题](链接) 的内容。
2. 算法题解文档审查
对于 docs/ 目录下的算法类 Markdown 文件,必须确保 @description 注释包含以下内容:
必须包含的要素
-
算法逻辑描述
-
时间复杂度
- 必须标注:如
时间复杂度 O(n)
- 必须说明推导过程:如
外层循环 O(n),内层...
-
空间复杂度
- 必须标注:如
空间复杂度 O(k)
- 必须说明推导过程:如
递归栈深度为 k,额外空间为...
复杂度推导说明示例
时间复杂度 O(n × 3^k) 推导:
- n = rows × cols(矩阵单元格数,即起点数)
- k = word.length(单词长度,即递归深度)
- 每层递归最多 3 个分支(4 个方向排除来向)
- 总计 n × 3^k 次操作
空间复杂度 O(k) 推导:
- 递归栈深度最多为 k(等于单词长度)
- visited 数组为输入数据,不计入额外空间
缺失时的处理
如果 @description 缺少时间/空间复杂度或推导说明:
- 自动补充完整的复杂度分析
- 更新文件并说明修改内容
执行流程
- 检测 docs 目录下的文件变更
- 判断变更类型(新增/修改/删除)
- 若涉及 .md 文件:
- 检查 sidebar.md 是否需要更新
- 若为算法题解,检查 @description 完整性
- 执行必要的更新
- 输出变更说明