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. 自检(架构师版)

  1. 为什么"LeetCode 难度标签"不适合做训练分层?
  2. 提示依赖率高说明什么?该怎么调整训练?
  3. 覆盖矩阵里"每行至少 2 个难度 1"的理由是什么?
  4. 你的题库在哪个模式上有缺口?怎么补?
  5. "每天 2 题"与"周末 20 题"的差别在哪(从记忆角度)?

9. 下一篇

S03-A02 · 题解质量评估与对拍体系

题库设计完,最后一个问题是"怎么证明题解是对的"。下一篇给对拍脚本、复杂度声明规范,以及本系列 4 组重复题与 25 张空壳卡的治理规则。这一篇同时是 S03 的方法论收尾。


本篇属于系列《S03 · 数据结构与算法》,架构师层第 1 篇。扩展点 E-S03-021。

S03-A01 · 题库设计与难度校准
https://www.clxhxhhr.top/posts/5213/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。