
算法知识图谱刷题路线不要只按题号排序一、题号顺序不是学习顺序很多刷题路线会按题号、热度或公司频次排列。这样方便列表展示却不一定适合学习。算法知识有依赖关系。不会前缀和区间统计会吃力不理解单调性二分答案会变成玄学图遍历没稳最短路也容易写歪。算法知识图谱的目标是把知识点和题目之间的依赖关系建出来。刷题不只是做更多题而是补上当前最关键的缺口。二、把知识点、题目和能力连接起来知识图谱可以包含概念节点、题目节点、技巧节点和错误类型节点。graph TD A[前缀和] -- B[区间和查询] A -- C[子数组和为 K] D[单调性] -- E[二分答案] F[BFS] -- G[最短路径入门] H[边界错误] -- C H -- E这样系统能知道一个人连续在二分答案题上错不一定是代码问题可能是单调性判断没掌握。三、用标签表达题目依赖下面示例给题目打知识标签和前置依赖。from dataclasses import dataclass dataclass class ProblemNode: problem_id: str tags: list[str] prerequisites: list[str] difficulty: int def is_ready(problem: ProblemNode, mastered: set[str]) - bool: return set(problem.prerequisites).issubset(mastered)推荐题目时先看前置依赖是否满足。否则难题会变成焦虑制造器。四、知识图谱要根据错误动态更新用户做错题后系统要标记错误类型。是边界漏了、复杂度超了、还是状态定义错了不同错误指向不同知识点。还要保留“已掌握”的证据。某个知识点不是看过一篇题解就掌握而是能在多道变形题中独立使用。掌握度要通过题目表现更新。最后图谱不要太细。标签过细会难维护过粗又没指导价值。可以先从常见知识点开始慢慢拆分。知识图谱还要处理题目多标签。一个题可能同时涉及哈希表、前缀和和计数思想。推荐系统不能只给它贴一个主标签否则会漏掉训练价值。多标签要有权重说明哪个知识点是核心哪个只是辅助。掌握度更新也要有衰减。一个月前做对的题不代表今天仍然熟。系统可以给知识点设置时间衰减再通过复习题刷新掌握度。刷题路线不是一次性规划而是动态调整。还要加入错误边。比如“二分答案”和“边界 off-by-one”经常一起出现图谱应记录这种关联。用户某类错误反复出现时推荐不一定是更难的题而是专门练边界的题。最后图谱要解释推荐理由。推荐一道题时告诉用户它在补哪个知识点、依赖哪些前置、为什么现在做。没有解释推荐列表就只是换了个排序方式。知识图谱还可以接入题解质量。一个知识点下面可能有很多题但不是每道题都适合学习。题目描述是否清楚、测试是否丰富、是否有标准反例都可以影响推荐权重。路线不只是知识点排序也要考虑题目质量。还要给复习留入口。知识点掌握后不必一直做新题可以定期给一两道轻量复习题检查是否遗忘。复习题不求难求覆盖关键不变量。最后图谱维护需要版本。新增题目、拆分标签、调整依赖都会影响历史掌握度。系统应记录图谱版本避免推荐结果突然变化却无法解释。最小可用版本可以先做小图。别一开始就想覆盖所有算法先把数组、哈希、栈、队列、二分、DP 入门这些高频节点连清楚。五、总结算法知识图谱能把刷题路线从题号列表升级成能力路径。知识点、题目、前置依赖和错误类型要连起来推荐才有依据。刷题数量不是核心知道下一题为什么该做才是学习系统的价值。