Skip to content

liukun2634/leetcode-ai-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LeetCode AI 学习笔记

用 AI 当教练,把 LeetCode 从“刷题”变成“系统化学习”。

本仓库收录我在 AI(GitHub Copilot / Claude)辅助下整理的 LeetCode 题解笔记。 重点不是“题做出来”,而是沉淀解题模板 + 提升主动回忆能力

在线阅读https://liukun2634.github.io/leetcode-ai-java/(左侧目录、全文搜索、代码高亮、上一/下一题分页)


项目目标

传统刷题 本项目方式
看题 → 看答案 → 抄一遍 → 忘 看题 → 自己想 → AI 引导分析 → 结构化笔记 → 主动回忆
只记得"这题用 DP" 记得"为什么用 DP、用哪种 DP、对应什么模板、同类题有哪些"
题海战术 题型 → 模板 → 变形,举一反三

核心理念:每一题都尝试回答四个问题

  1. 题目本质是什么?(能不能翻译成图/状态/区间/单调结构…)
  2. 暴力为什么不行?(看清优化的方向)
  3. 关键技巧叫什么名字?(写进自己的"模板库")
  4. 还有哪些同类题?(编织知识网络)

仓库结构

leetcode-ai-java/
├── README.md                       ← 你正在看的文件(题目索引自动生成)
├── index.html                      ← docsify 入口,GitHub Pages 直接渲染
├── _sidebar.md                     ← docsify 左侧目录(脚本自动生成)
├── .nojekyll                       ← 告诉 GH Pages 不要用 Jekyll
├── scripts/
│   └── generate-index.ps1          ← 扫描 md 文件,重建 README 索引 + sidebar
│
├── interview-prep/                 ← 题解笔记主目录
│   ├── README.md                   ← 路线图:分类 + 高频题清单
│   ├── 01-array-hash/              ← 每个分类一个文件夹
│   │   └── leetcode-{n}-{name}.md  ← 单题笔记,统一模板
│   ├── 02-sliding-window/
│   ├── ...
│   └── 10-heap/
│
└── java-toolkit/                   ← 写代码 + 跑代码的 Java 工具箱
    ├── README.md
    ├── java-leetcode-io-template/  ← 本地跑 LeetCode 风格输入
    ├── java-io-template/           ← 通用 ACM/笔试输入
    └── java-leetcode-collections/  ← Java 集合 / 常用函数速查(7 篇)

单篇笔记结构(每一题都遵循)

leetcode-{题号}-{英文名}.md
├── 一、题目                  # 含约束 + 示例
├── 二、解题思路(学习重点)   # ★ 核心
│   ├── 1. 题目分析(翻译成状态/图/区间)
│   ├── 2. 关键观察(为什么这么做)
│   ├── 3. 细节坑表(细节 ↔ 技巧 一一对应)
│   └─ 4. 多解法对比
├── 三、Java 题解             # 推荐解法 + 记忆口诀
├── 四、复杂度                # 含"朴素为什么 TLE"
├── 五、示例验证              # 手工跑表格,加深印象
└── 六、复盘与延伸
    ├── 一句话总结
    ├── 自我提问(合上代码默答)★ 主动回忆
    └── 同类型题推荐

这个模板的设计借鉴了**主动回忆(Active Recall)+ 间隔重复(Spaced Repetition)**学习法。


题目索引

以下索引由 scripts/generate-index.ps1 扫描 interview-prep/**/leetcode-*.md 自动生成。 请勿手动编辑两个 AUTO-INDEX 标记之间的内容。加题后运行:

pwsh scripts/generate-index.ps1

按题号速查

# 题目 难度 分类 标签 笔记
1 两数之和 (Two Sum) Easy 数组 & 哈希 数组、哈希表 笔记
3 无重复字符的最长子串 (Longest Substring Without Repeating Characters) Medium 双指针 & 滑动窗口 哈希表、字符串、滑动窗口 笔记
4 寻找两个正序数组的中位数 (Median of Two Sorted Arrays) Hard 二分查找 数组、二分查找、分治 笔记
11 盛最多水的容器 (Container With Most Water) Medium 数组 & 哈希 数组、双指针、贪心 笔记
15 三数之和 (3Sum) Medium 数组 & 哈希 数组、排序、双指针 笔记
20 有效的括号 (Valid Parentheses) Easy 栈 & 队列 栈、字符串 笔记
21 合并两个有序链表 (Merge Two Sorted Lists) Easy 链表 链表、递归 笔记
22 括号生成 (Generate Parentheses) Medium 回溯 回溯、剪枝 笔记
23 合并 K 个升序链表 (Merge K Sorted Lists) Hard 链表 链表、堆、分治 笔记
25 K 个一组翻转链表 (Reverse Nodes in K-Group) Hard 链表 链表、递归 笔记
33 搜索旋转排序数组 (Search in Rotated Sorted Array) Medium 二分查找 数组、二分查找 笔记
39 组合总和 (Combination Sum) Medium 回溯 数组、回溯 笔记
41 缺失的第一个正数 (First Missing Positive) Hard 数组 & 哈希 数组、原地哈希 笔记
42 接雨水 (Trapping Rain Water) Hard 双指针 & 滑动窗口 数组、双指针、单调栈、动态规划 笔记
46 全排列 (Permutations) Medium 回溯 回溯、数组 笔记
49 字母异位词分组 (Group Anagrams) Medium 数组 & 哈希 哈希表、字符串、排序 笔记
51 N 皇后 (N-Queens) Hard 回溯 回溯、剪枝 笔记
53 最大子数组和 (Maximum Subarray) Medium 数组 & 哈希 数组、动态规划、贪心、分治 笔记
55 跳跃游戏 (Jump Game) Medium 动态规划 数组、贪心、动态规划 笔记
56 合并区间 (Merge Intervals) Medium 数组 & 哈希 数组、排序、贪心 笔记
70 爬楼梯 (Climbing Stairs) Easy 动态规划 动态规划、数学 笔记
72 编辑距离 (Edit Distance) Medium 动态规划 字符串、动态规划 笔记
76 最小覆盖子串 (Minimum Window Substring) Hard 双指针 & 滑动窗口 哈希表、字符串、滑动窗口 笔记
78 子集 (Subsets) Medium 回溯 回溯、位运算 笔记
84 柱状图中最大的矩形 (Largest Rectangle in Histogram) Hard 栈 & 队列 栈、单调栈、数组 笔记
98 验证二叉搜索树 (Validate Binary Search Tree) Medium 树、BST、DFS、递归 笔记
102 二叉树的层序遍历 (Binary Tree Level Order Traversal) Medium 树、BFS、队列 笔记
121 买卖股票的最佳时机 (Best Time to Buy and Sell Stock) Easy 动态规划 数组、动态规划、贪心 笔记
122 买卖股票的最佳时机 II (Best Time to Buy and Sell Stock II) Medium 动态规划 数组、贪心、动态规划 笔记
124 二叉树中的最大路径和 (Binary Tree Maximum Path Sum) Hard 树、DFS、动态规划 笔记
128 最长连续序列 (Longest Consecutive Sequence) Medium 数组 & 哈希 哈希表、并查集 笔记
142 环形链表 II (Linked List Cycle II) Medium 链表 链表、快慢指针、Floyd 判圈 笔记
146 LRU 缓存 (LRU Cache) Medium 链表 设计、哈希表、双向链表 笔记
153 寻找旋转排序数组中的最小值 (Find Minimum in Rotated Sorted Array) Medium 二分查找 数组、二分查找 笔记
155 最小栈 (Min Stack) Medium 栈 & 队列 栈、设计 笔记
198 打家劫舍 (House Robber) Medium 动态规划 动态规划 笔记
199 二叉树的右视图 (Binary Tree Right Side View) Medium 树、BFS、DFS 笔记
200 岛屿数量 (Number of Islands) Medium 图与搜索 DFS、BFS、并查集、网格 笔记
206 反转链表 (Reverse Linked List) Easy 链表 链表、递归、双指针 笔记
207 课程表 (Course Schedule) Medium 图与搜索 图、拓扑排序、BFS、DFS 笔记
208 实现 Trie (前缀树) Medium 堆 & 设计 字典树、设计 笔记
209 长度最小的子数组 (Minimum Size Subarray Sum) Medium 双指针 & 滑动窗口 数组、滑动窗口、前缀和 笔记
210 课程表 II (Course Schedule II) Medium 图与搜索 图、拓扑排序、BFS、DFS 笔记
215 数组中的第 K 个最大元素 (Kth Largest Element in an Array) Medium 堆 & 设计 堆、快速选择、分治 笔记
236 二叉树的最近公共祖先 (Lowest Common Ancestor) Medium 树、DFS、递归 笔记
238 除自身以外数组的乘积 (Product of Array Except Self) Medium 数组 & 哈希 数组、前缀和、前后缀分解 笔记
239 滑动窗口最大值 (Sliding Window Maximum) Hard 栈 & 队列 队列、单调队列、滑动窗口 笔记
295 数据流的中位数 (Find Median from Data Stream) Hard 堆 & 设计 堆、设计、数据流 笔记
297 二叉树的序列化与反序列化 (Serialize and Deserialize Binary Tree) Hard 树、设计、BFS、DFS 笔记
300 最长递增子序列 (Longest Increasing Subsequence) Medium 动态规划 动态规划、二分查找、贪心 笔记
322 零钱兑换 (Coin Change) Medium 动态规划 动态规划、完全背包 笔记
347 前 K 个高频元素 (Top K Frequent Elements) Medium 堆 & 设计 哈希、堆、桶排序、快速选择 笔记
438 找到字符串中所有字母异位词 (Find All Anagrams in a String) Medium 双指针 & 滑动窗口 哈希表、字符串、滑动窗口 笔记
460 LFU 缓存 (LFU Cache) Hard 堆 & 设计 设计、哈希、双向链表 笔记
547 省份数量 (Number of Provinces) Medium 图与搜索 图、DFS、BFS、并查集 笔记
739 每日温度 (Daily Temperatures) Medium 栈 & 队列 栈、单调栈、数组 笔记
875 爱吃香蕉的珂珂 (Koko Eating Bananas) Medium 二分查找 数组、二分查找、答案二分 笔记
994 腐烂的橘子 (Rotting Oranges) Medium 图与搜索 图、BFS、多源 BFS、网格 笔记
1143 最长公共子序列 (Longest Common Subsequence) Medium 动态规划 字符串、动态规划 笔记

按算法分类

01 · 数组 & 哈希 (9 题)

02 · 双指针 & 滑动窗口 (5 题)

03 · 链表 (6 题)

04 · 栈 & 队列 (5 题)

05 · 二分查找 (4 题)

06 · 树 (6 题)

07 · 图与搜索 (5 题)

08 · 回溯 (5 题)

09 · 动态规划 (9 题)

10 · 堆 & 设计 (5 题)

统计:共 59 题(Easy 6 · Medium 40 · Hard 13)


GitHub Pages 在线阅读

本仓库使用 docsify 把 markdown 实时渲染成网站,零构建步骤

一次性开启(已配置好,只需在 GitHub 上点开关)

  1. 进入仓库 → SettingsPages
  2. SourceDeploy from a branch
  3. Branchmain,目录选 / (root),保存
  4. 等 1~2 分钟,访问:https://liukun2634.github.io/leetcode-ai-java/

已包含的特性

  • 左侧目录:按分类 / 题号自动排序
  • 全文搜索:题号、题名、标签、笔记内容
  • 代码高亮:Java / Python / Bash / PowerShell
  • 数学公式:KaTeX 渲染 $O(n \log n)$
  • 上一题 / 下一题分页导航
  • 一键复制代码块
  • 响应式,手机可读

本地预览

# 方式 A:用 docsify-cli(推荐)
npm i -g docsify-cli
docsify serve .
# → http://localhost:3000

# 方式 B:随便一个静态服务器
python -m http.server 8000
# → http://localhost:8000

加新题的工作流

# 1. 在对应分类下加一个 leetcode-N-name.md
# 2. 重建索引
pwsh scripts/generate-index.ps1
# 3. 推上去,GitHub Pages 自动更新
git add -A
git commit -m "add: NNN <题名>"
git push

如何用 AI 高效刷题(个人方法论)

Step 1:先自己想 5-10 分钟

  • 不要直接问 AI “怎么做”
  • 而是问自己:这题像什么我做过的题?数据量提示什么复杂度?

Step 2:让 AI 当“苏格拉底”

不好的提问:

“帮我写出这题的答案”

好的提问:

“这题我想到了 BFS,但 n=10^5 会不会 TLE?怎么优化?” “这题正向 DP 和反向 DP 哪个更适合?为什么?” “这个细节为什么要 max(0, j-maxJump)?不写会怎样?”

Step 3:生成结构化笔记(本仓库格式)

让 AI 按统一模板输出,方便日后翻阅、对比同类题。

Step 4:合上笔记,自我提问

笔记里“自我提问”那一节,两天后再回来默答一遍。 答不上来 → 重读 → 再过两天 → 再答。间隔重复是记忆的关键。

Step 5:刷同类题验证模板

笔记最后的“同类型题推荐”就是检验你是否真的掌握模板的考场。


命名 & 提交规范

  • 文件命名:leetcode-{题号}-{kebab-case-英文名}.md
  • 放在对应的 interview-prep/{NN-category}/
  • 笔记开头第一行:# [LeetCode {N}. {中文名} ({English Name})](https://leetcode.com/...)
  • 第三行(meta):> 难度:Easy/Medium/Hard | 标签:xx、yy | ...
    • 脚本依赖这两行解析元数据,写一致才能自动建索引
  • 加完题运行 pwsh scripts/generate-index.ps1 同步 README + sidebar
  • Commit 信息:add: NNN <题名> — <一句话技巧>

推荐资源


License

仅用于个人学习记录。题目版权归 LeetCode 所有。


"The best way to learn is to teach — to AI, to your future self, to a blank page."

About

借助 AI 把 LeetCode 从"刷题"变成"学算法":模板化笔记 + Java 题解

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors