AI 时代刷题
基础知识 ⭐ 入门 🔥 高频
💡 核心要点
AI 已经能写出不少题解代码,但刷题的意义并没有消失。刷题真正训练的是建模、复杂度判断、边界意识和稳定实现,这些能力正是你使用 AI 时最需要保留的部分。
为什么还要刷题
- 面试并不只看你能不能写出代码,还在看你能不能快速建模、判断复杂度、说明边界和解释取舍。
- 实际工作里也一样,AI 可以生成初稿,但你仍然要负责判断方案是否合理、复杂度是否合适、代码是否稳。
- 刷题的意义,正在从“背模板”转向“训练判断力、实现稳定性和表达能力”。
- 最稳的做法仍然是:先自己想,再用 AI 做补充,再自己独立重写。
AI 时代刷题真正训练什么
| 能力 | 为什么还重要 | AI 不能直接替你完成什么 |
|---|---|---|
| 建模能力 | 看到题后先判断这是数组、图、树还是状态问题 | AI 能给建议,但第一反应和取舍仍要你自己判断 |
| 复杂度判断 | 决定你是继续优化,还是当前解法已经足够 | AI 可能给错复杂度,或者忽略输入规模细节 |
| 边界意识 | 决定代码是否在极端样例下稳定 | AI 常能补样例,但不能替你承担最终正确性责任 |
| 实现稳定性 | 面试现场和笔试场景都要靠你自己写稳 | AI 在真实面试里并不总是可用,也不能保证产出可靠 |
| 复盘迁移能力 | 决定你下一次看到同类题能否更快识别 | 题感和迁移能力只能靠你自己积累 |
AI 应该放在刷题流程的哪里
- 先自己写出暴力解或半成品思路,再把卡点交给 AI。
- 让 AI 优先回答“这题像哪一类、为什么是这个复杂度、边界在哪”,不要直接让它交整题代码。
- 把 AI 当成反馈放大器,用它补测试、查边界、对比思路,而不是替代你的第一轮判断。
- 最后自己独立重写,不要复制粘贴就结束。
不同阶段怎么用 AI
| 阶段 | 你自己先做什么 | AI 最适合补什么 |
|---|---|---|
| 入门期 | 先手推样例,写出暴力思路 | 帮你识别题型、解释为什么能优化 |
| 进阶期 | 先独立写出可通过的版本 | 帮你查边界、对比不同写法、补测试 |
| 面试前 | 先限时完成、独立讲解 | 帮你模拟追问、压缩表达、总结易错点 |
适合交给 AI 的任务
| 任务 | AI 适合做什么 |
|---|---|
| 题型识别 | 帮你判断更像双指针、BFS、DP 还是贪心 |
| 复杂度分析 | 检查你的写法为什么是 或 |
| 边界检查 | 帮你补空数组、单元素、重复值、极值测试 |
| 语言对照 | 把同一思路翻成 Java 和 C++ 两版 |
| 复盘总结 | 帮你总结这题的触发信号和易错点 |
不适合交给 AI 的任务
- 还没读懂题,就让 AI 直接给完整最优解。
- 完全不看过程,只复制 AI 的代码。
- 不验证复杂度和边界,就默认 AI 一定对。
- 把每一道题都交给 AI 分类,自己不练题感。
推荐的大纲顺序
- 先回答“为什么现在还要刷题”。
- 再回答“AI 时代刷题真正训练什么能力”。
- 接着说明“AI 应该放在刷题流程里的什么位置”。
- 然后给出“不同阶段怎么用 AI”的建议。
- 最后补“推荐提问方式”和“常见误区”。
推荐提问方式
让 AI 只给思路,不给代码
text
这题我已经想到暴力解是双重循环,时间复杂度 O(n^2)。
请不要直接给我代码,只告诉我这题更像哪一类问题,为什么有机会优化到 O(n) 或 O(n log n)。让 AI 帮你查边界
text
下面是我写的 Java 解法,请你不要重写,只检查有没有边界遗漏,并给我 5 个最容易出错的测试用例。让 AI 做语言对照
text
请把这个思路分别用 Java 和 C++ 写成刷题常用模板,并解释两种写法在集合、队列和优先队列上的差异。典型实例
- 你会暴力解,但不知道怎么优化时,让 AI 帮你判断问题类型。
- 你已经写完 Java 版时,让 AI 帮你对照出 C++ 版模板。
- 你怀疑自己边界处理有漏洞时,让 AI 帮你补极端测试。
使用 AI 时最容易犯的错误
- 只问“给我答案”,不问“为什么”。
- 看完 AI 的解释,以为自己已经会了,却没独立重写。
- AI 给了错误复杂度或错误边界时,自己没有复核。
- 让 AI 带着节奏走,结果自己的题感越来越弱。