AI辅助刷题指南:用DeepSeek/Claude提高LeetCode通过率的正确姿势
·
让AI直接给你代码,你什么也学不到。但如果你把AI当"答疑老师"用,刷题效率至少翻3倍。今天分享一套经过验证的 AI 辅助刷题方法论——不是教你怎么偷懒,是教你怎么学得更快。
一、AI刷题的最大误区
❌ 错误姿势:
1. 打开 LeetCode
2. 复制题目
3. 粘贴给 AI
4. 拿到代码
5. 提交 AC
6. 以为自己会了
7. 下次遇到同类型 → 完全写不出来
✅ 正确姿势:
1. 打开 LeetCode
2. 自己先想 10-15 分钟
3. 想不出来 → 让 AI 讲思路(不给代码!)
4. 根据思路自己写
5. 写不出来 → 让 AI 给提示(只给下一步)
6. 写出代码 → 让 AI review
7. 总结思路,记录到笔记
核心原则:AI是老师,不是代写。
二、分层次使用AI
根据你当前的状态,选择不同的AI使用策略:
┌──────────────────────────────────────────────────────────┐
│ AI辅助刷题四层策略 │
├──────────────┬───────────────────────────────────────────┤
│ 你的状态 │ AI的作用 │
├──────────────┼───────────────────────────────────────────┤
│ Level 1 │ 🎯 讲解思路 │
│ 完全不会 │ "这道题的思路是什么?用什么算法?" │
│ │ ⚠️ 坚决不要要代码 │
├──────────────┼───────────────────────────────────────────┤
│ Level 2 │ 💡 给提示 │
│ 有点思路但卡住│ "我想到用双指针,但不知道怎么收缩窗口" │
│ │ AI 给下一步提示,不是完整解法 │
├──────────────┼───────────────────────────────────────────┤
│ Level 3 │ 🐛 帮忙debug │
│ 写出来但有bug │ "我的代码在第X个测试用例失败了,帮我看看" │
│ │ AI 分析错误原因,引导你自己修复 │
├──────────────┼───────────────────────────────────────────┤
│ Level 4 │ ⚡ 优化 │
│ 能AC但不够优 │ "我的解法O(n²),有没有更优的?" │
│ │ AI 分析优化方向,你来实现 │
└──────────────┴───────────────────────────────────────────┘
三、四个层级的Prompt模板
Level 1:思路讲解(不要代码!)
我正在做一道LeetCode题:
【题目】
给你一个整数数组 nums 和一个整数目标值 target,
找出和为目标值 target 的那两个整数,并返回它们的数组下标。
我的理解:
我知道可以用暴力法O(n²),但感觉应该有更优解。
请告诉我:
1. 这道题最优解用什么算法?
2. 核心思路是什么?(用通俗语言解释)
3. 为什么要用这个算法?(而不是其他算法)
⚠️ 注意:不要给我代码!只要思路讲解。
为什么不要代码?
如果你看到代码,大脑会进入"阅读模式"而不是"思考模式"。看懂代码 ≠ 能写代码。先理解思路,自己尝试实现,才是真正的学习。
Level 2:给提示(不是完整解法)
我正在做 LeetCode 3:无重复字符的最长子串。
我的思路:
我知道要用滑动窗口,left和right两个指针。
right右移扩大窗口,当出现重复字符时...我卡住了。
问题:
当出现重复字符时,left应该怎么移动?
是移动到重复字符的下一个位置,还是有其他逻辑?
只给我一个提示,不要给完整解法。
Level 3:Debug
我正在做 LeetCode 76:最小覆盖子串。
我的代码运行失败,测试用例:
s = "ADOBECODEBANC", t = "ABC"
期望输出:"BANC",我的输出:"CODEBA"
这是我的代码:
```java
[粘贴你的代码]
报错信息:
[粘贴报错]
请帮我分析:
- 我的代码哪一步逻辑有问题?
- 应该怎么修?(给我方向,不要直接给修改后的代码)
### Level 4:优化
我完成了 LeetCode 15:三数之和。
我的解法:
先用Arrays.sort排序,然后两层for循环+双指针。
时间复杂度 O(n²)。
请分析:
- 我的解法是否已经是最优?
- 有没有常数级别的优化空间?
- 空间复杂度还能优化吗?
- 有没有其他完全不同的解法?
---
## 四、实战案例演示
### 案例:LeetCode 42 — 接雨水
**Step 1:自己思考 15 分钟**(可能完全没思路,没关系)
**Step 2:Level 1 请求思路**
> Prompt: "接雨水这道题,我想用暴力法每根柱子分别算,但O(n²)太慢。最优解用什么思路?不要代码,只要讲清楚原理。"
AI 会告诉你:**动态规划**(左右最大值数组)或**双指针**(左右指针向中间收敛)或**单调栈**(按行计算水量)。
**Step 3:自己尝试实现双指针解法**
```java
// 你自己写的(可能有bug)
public int trap(int[] height) {
int left = 0, right = height.length - 1;
int result = 0;
while (left < right) {
if (height[left] < height[right]) {
result += height[left]; // 这里有bug
left++;
} else {
result += height[right]; // 这里也有bug
right--;
}
}
return result;
}
Step 4:Level 3 请求 Debug
Prompt: “我的接雨水双指针解法,测试用例 [0,1,0,2,1,0,1,3,2,1,2,1] 期望6,我输出3。帮我看看哪里逻辑有问题,不要直接给正确代码。”
AI 会指出:你应该维护左右两边的最大值,而不是直接用当前柱子高度。水量 = min(leftMax, rightMax) - height[i]。
Step 5:根据提示修复,提交AC
Step 6:Level 4 请求优化
Prompt: “我的双指针解法AC了,空间O(1)时间O(n)。还有更优解吗?单调栈解法是怎么做的?”
五、常见误区
误区1:直接要代码
❌ "给我这道题的代码"
✅ "这道题用什么算法?核心思路是什么?"
看到代码的那一刻,你的大脑就放弃了思考。
你得到了答案,但没有得到能力。
误区2:不看解析就下一题
❌ AC了下一题
✅ AC了 → 复盘 → 总结模板 → 记录笔记
每道题的价值不在于AC本身,
而在于你从中学到了什么可以复用的模式。
误区3:所有题都问AI
❌ 简单题也问AI
✅ 简单题自己做,中等题卡住再问,困难题先看题解
如果Easy题也要AI才能做,说明基础不够,
应该先补数据结构和算法基础。
误区4:AI说啥就是啥
❌ 盲信AI的答案
✅ 自己验证AI给出的思路
AI也会犯错!特别是边界条件和特殊case。
一定要自己在LeetCode上跑一遍。
六、推荐刷题路线
结合AI辅助,推荐的刷题路线:
Week 1-2: 基础(必须自己做,不问AI)
├── 数组、链表、栈、队列
├── 哈希表、集合
└── 二分查找
Week 3-4: 基础算法模板(可以用AI讲思路)
├── 双指针(对撞、快慢、滑动窗口)
├── BFS / DFS
└── 递归与回溯
Week 5-6: 进阶(AI辅助理解)
├── 动态规划(入门 → 中等)
├── 单调栈 / 单调队列
└── 贪心算法
Week 7-8: 综合实战
├── 困难题(AI讲思路 + 自己实现)
├── 虚拟竞赛(限时训练)
└── 针对薄弱环节专项训练
各类题目数量建议:
┌─────────────────────────────────────────────────┐
│ 难度 │ 建议数量 │ AI使用策略 │
├───────────┼──────────┼─────────────────────────┤
│ Easy │ 50-80 │ 不用AI,自己做 │
│ Medium │ 100-150 │ 卡住再问AI │
│ Hard │ 20-30 │ AI讲思路+自己实现 │
└───────────┴──────────┴─────────────────────────┘
七、AI工具推荐
| 工具 | 优势 | 推荐场景 |
|---|---|---|
| DeepSeek | 中文强、便宜 | 日常刷题、算法讲解 |
| Claude | 代码质量高、推理强 | 复杂题分析、代码Review |
| ChatGPT | 综合能力强 | 通用问题 |
| Cursor | 直接在IDE里对话 | 写代码时的实时辅助 |
| LeetCode AI | 集成在平台内 | 不想切换工具时 |
💡 最后总结:AI 是刷题的加速器,不是代步车。四层策略的核心就是——尽量让自己多思考,AI只在关键时刻推你一把。坚持这个原则,你的算法能力会肉眼可见地提升。
如果觉得有帮助,点赞 + 收藏支持一下!有问题欢迎评论区讨论 💬
更多推荐
所有评论(0)