1684 字
约 5 分钟
3
S03-A01 · 题库设计与难度校准
适用读者:要设计训练体系、或要判断"这套题够不够"的人。
前置:S03-J01–J06。
覆盖旧文:—(方法论;A-1884 的学习路线作为输入)
覆盖扩展:E-S03-021(难度校准指标)。
上一篇:S03-J06 · 栈与单调栈:把"最近更大/更小"变成 O(n)
下一篇:S03-A02 · 题解质量评估与对拍体系。
1. 一句话结论
一套好题库的三个条件:模式覆盖完整、难度分层可解释、结果可度量。缺任何一个,训练就会"看起来练了很多,实际不会迁移"。
| 条件 | 反例 |
|---|---|
| 模式覆盖完整 | 只刷"数组遍历",遇到滑动窗口就废 |
| 难度分层可解释 | 用"LeetCode 难度标签"分层——它反映的是投票,不是认知负荷 |
| 结果可度量 | 只有"做了多少题",没有"哪类题还不会" |
2. 覆盖矩阵:模式 × 难度
本系列的模式维度(来自 J01–J06 + B 系列):
| 模式 | 难度 1(模板) | 难度 2(变形) | 难度 3(组合) |
|---|---|---|---|
| 滑窗/双指针 | #26 #27 #11 | #3 #75 #15 | #76 #30 #42 |
| 二分 | #35 #69 | #33 #34 #74 | #4 #29 #81 |
| 链表 | #21 #83 #24 | #19 #86 #61 | #23 #25 #92 |
| 回溯 | #46 #78 #77 | #22 #39 #90 | #37 #51 #93 |
| DP | #70 #53 | #62 #64 #91 | #72 #97 #87 |
| 单调栈 | #20 #71 | #84 #32 | #42 #85 |
| 哈希/位运算 | #1 #136 | #49 #41 | — |
| 树 | #94 #100 | #98 #96 | #95 #99 |
判据:每一行至少 2 个难度 1、2 个难度 2、1 个难度 3;否则该模式在实战中会"卡在变形题"。
2.1 覆盖检查(本系列实测)
| 检查 | 结果 |
|---|---|
| 模式数 | 8 |
| 总题数(题解卡覆盖) | 104(含重复与空壳) |
| 每模式 ≥5 题 | 7/8 满足(哈希/位运算不足,需补) |
| 难度 3 覆盖 | 6/8 满足(哈希、树缺) |
结论:本系列题库在"哈希/位运算"与"树的难度 3"上有缺口——已登记在 gaps.md。
3. 难度校准:三个可计算指标(E-S03-021)
LeetCode 的 Easy/Medium/Hard 是社区投票,不适合做训练分层。用可计算的三指标:
| 指标 | 定义 | 含义 |
|---|---|---|
| 通过率 p | 通过人数 / 尝试人数 | 越低越难 |
| 中位耗时 t | 从读题到通过的中位时间 | 反映"认知负荷"而非"代码量" |
| 提示依赖率 h | 需要看题解的比例 | 反映"是否真的会" |
分层规则(可执行):
| 难度 | 条件 |
|---|---|
| 1 级(模板) | p > 50% 且 t < 20 min 且 h < 20% |
| 2 级(变形) | 20% < p ≤ 50% 或 20 ≤ t ≤ 60 min |
| 3 级(组合) | p ≤ 20% 或 t > 60 min 或 h > 60% |
为什么加"提示依赖率":一道题"看题解才会"和"独立做出"是两种能力状态。只用通过率会把"背过答案"当成"会"。
4. 训练路径:八周安排(可交付)
| 周 | 主题 | 题量 | 验收 |
|---|---|---|---|
| 1 | 数组/链表/栈队列(B02–B03) | 10 | 能徒手画指针图 |
| 2 | 哈希、堆、树(B04–B06) | 10 | 能选对结构并说明理由 |
| 3 | 图、并查集、位运算(B07–B08) | 8 | 能判"该用哪种结构" |
| 4 | 双指针/滑窗(J01) | 12 | 能写滑窗三件套 |
| 5 | 二分(J02) | 9 | 统一模板不写错边界 |
| 6 | 链表(J03) + 单调栈(J06) | 17 | 虚拟头/哨兵熟练 |
| 7 | 回溯(J04) | 14 | 去重与剪枝正确 |
| 8 | DP(J05) | 11 | 四问法能独立推导 |
节奏原则:每天 2 题(1 新 + 1 复习),比"周末刷 20 题"有效——间隔重复比集中突击留存率高。
5. 度量看板(可落地的四个数)
| 指标 | 采集 | 用途 |
|---|---|---|
| 模式掌握率 | 每模式的难度 2 题独立通过率 | 定位薄弱模式 |
| 首答正确率 | 第一次提交是否通过 | 反映"想清楚再写"的能力 |
| 提示依赖率 | 看题解/讨论的次数占比 | 区分"真会"与"背过" |
| 复习留存率 | 7 天后重做同题的成功率 | 反映长期记忆 |
判据:模式掌握率 < 60% 的模式,停止新题、回头补该模式的难度 1。
6. 五个误区(题库设计)
| 误区 | 真相 |
|---|---|
| "题做得越多越好" | 覆盖不全时,多做题只是重复已会的模式 |
| "LeetCode 难度标签可直接用" | 是投票结果,不等于认知负荷 |
| "通过率高就是简单" | 可能是"被讨论烂了"(提示依赖率高) |
| "按题号顺序刷" | 题号顺序不承载模式结构 |
| "只看通过不看耗时" | 30 分钟做出 vs 3 小时做出,能力差很多 |
7. 交付物
| 交付物 | 内容 |
|---|---|
| 覆盖矩阵 | §2 的表(模式 × 难度 × 题号) |
| 难度规则 | §3 的三指标与阈值 |
| 训练路径 | §4 的八周表 |
| 看板口径 | §5 的四个指标定义 |
8. 自检(架构师版)
- 为什么"LeetCode 难度标签"不适合做训练分层?
- 提示依赖率高说明什么?该怎么调整训练?
- 覆盖矩阵里"每行至少 2 个难度 1"的理由是什么?
- 你的题库在哪个模式上有缺口?怎么补?
- "每天 2 题"与"周末 20 题"的差别在哪(从记忆角度)?
9. 下一篇
S03-A02 · 题解质量评估与对拍体系
题库设计完,最后一个问题是"怎么证明题解是对的"。下一篇给对拍脚本、复杂度声明规范,以及本系列 4 组重复题与 25 张空壳卡的治理规则。这一篇同时是 S03 的方法论收尾。
本篇属于系列《S03 · 数据结构与算法》,架构师层第 1 篇。扩展点 E-S03-021。
S03-A01 · 题库设计与难度校准
https://www.clxhxhhr.top/posts/5213/ 评论
0 条
还没有评论,先写一条吧。