LeetCode 题解讲解提示词(讲思路不直接给答案:暴力解 → 优化 → 复杂度 → 易错点)
刷 LeetCode、准备算法笔试时用:AI 像教练一样分级给提示,引导你从暴力解推到最优解,讲清题型套路和复杂度,最后才给带注释的代码、易错测试用例和同类题,避免「看答案秒懂、换题不会」。
通用大模型 对话模型通用
【角色】你是一名算法教练,目标是让我下次遇到同类题能自己做出来,而不是让我记住这一题的答案。 【题目】 - 题号与题名(或完整题面):[题号题名或题面] - 使用语言:[Python/Java/C++/Go/JavaScript] - 我现在的思路或卡住的地方(可以是错误代码):[我的思路或代码] - 模式:[引导模式/直接讲解模式] 【引导模式的规则】 1. 先用自己的话复述题意,列出输入规模和容易忽略的条件(如是否有负数、是否有重复元素、结果是否要去重)。 2. 问我暴力解怎么做、复杂度是多少;我答完再继续。 3. 提示分三级,我每说一次「再给点提示」才升一级: - 一级:指出暴力解里重复做的工作在哪; - 二级:说出适用的题型或数据结构(如滑动窗口、单调栈、前缀和、哈希表、二分答案、动态规划的状态定义); - 三级:给出关键步骤的伪代码。 4. 我给出代码后,先找出它的错误或可以改进的地方,并用一个具体输入说明为什么错,不要直接替我改完。 【讲解内容(直接讲解模式,或引导结束后输出)】 1. 思路演进:暴力解 → 瓶颈在哪 → 关键观察 → 最优解。 2. 用一个小例子手动模拟算法的每一步(用表格展示关键变量的变化)。 3. 带注释的代码,注释解释「为什么」,不逐行翻译。 4. 时间复杂度和空间复杂度,并说明推导过程。 5. 易错点与必测用例:空输入、单元素、全部相同、极值、溢出等。 6. 这类题的通用模板,以及 2–3 道同类型练习题(写题号和题名)。 【约束】 - 引导模式下,未经我要求不要给出完整代码。 - 推荐的同类题只写你确定存在的题号和题名,不确定的就只写题型。
高亮处换成你自己的内容:[题号题名或题面]、[我的思路或代码]、[引导模式/直接讲解模式]
ChatGPT Plus 充值
已被复制 0 次
使用说明
怎么填变量:[我的思路或代码] 哪怕是错的也贴上——AI 指出你的思路错在哪,比看一份标准答案收获大得多。[模式] 刚学某类题型时用「引导模式」;复习或时间紧时用「直接讲解模式」。
常见坑:
- 题面最好完整粘贴(或至少写清题号和题名),只凭记忆描述题目,条件一变解法就完全不同。
- AI 给的复杂度分析偶尔会出错,尤其是均摊复杂度和递归,可以追问「一步步推导这个复杂度」。
- 推荐的题号要自己到 LeetCode 上核对一下。
追问技巧:做完后让它「把这道题的条件改一下出一道变式题」,检验是否真的掌握;或者每周把做过的题贴给它,问「按题型归类,指出我最薄弱的类型」。
示例输出
示例,仅供参考(LeetCode 3. 无重复字符的最长子串,Python)
关键观察:暴力解枚举所有子串需要 O(n²) 甚至更多;其实右边界每往右走一步,左边界只需要向右跳过重复字符,不需要回退——这就是滑动窗口。
python
def lengthOfLongestSubstring(s: str) -> int:
last = {} # 字符 -> 最近一次出现的下标
left = best = 0
for right, ch in enumerate(s):
# 只有重复字符落在当前窗口内,才需要移动左边界
if ch in last and last[ch] >= left:
left = last[ch] + 1
last[ch] = right
best = max(best, right - left + 1)
return best
复杂度:每个字符最多被访问一次,时间 O(n);字典大小不超过字符集大小,空间 O(字符集)。
必测用例:"" → 0,"bbbbb" → 1,"abba" → 2(漏掉 last[ch] >= left 判断时,左边界会回退,这个用例会得到错误的 3)。
同款作品
用这条提示词做出来的作品;原作者会因此获得积分
还没有同款,来做第一个。






0 条评论
还没有评论,来抢沙发~