一道 medium 题,从看题到写完笔记,20 分钟搞定。不是因为我多强,而是因为我找到了正确的工具组合。
传统的刷题方式,痛点在哪?
我刷 LeetCode 有一阵子了,最深的感受是——刷过的题总是忘。
典型的循环是这样的:
看题 → 想思路 → 看题解 → 抄一遍 → 过几天 → 忘了 → 重看
而且每次解题遇到的问题都不一样:边界条件没处理好、溢出判断写错了、某种语言的特性和另一种语言表现完全不同……这些经验如果不记下来,下次遇到又是从头踩坑。
我也试过记笔记,但用普通编辑器记笔记太割裂——题解在一个地方,代码在一个地方,写的笔记又在一个地方,来回切换,效率低下。
后来我找到了一个组合,完美解决了这个问题:Obsidian + OpenCode(Claudian AI)。
解决方案:Obsidian + 内置 AI 助手
这套工作流的核心理念是:所有事情都在 Obsidian 里完成,不切应用。
Obsidian:你的第二大脑
Obsidian 是一个基于本地 Markdown 文件的知识管理工具。它不是传统的笔记软件,而是一个"第二大脑"——所有笔记都是纯文本文件,存在本地,完全由你掌控。
为什么选 Obsidian 而不是 Notion、飞书这类在线工具?
- 本地优先:笔记存在本地,永远不用担心服务关停数据丢失
- 纯 Markdown:没有专有格式,未来任何工具都能打开
- 双向链接:
[[题解笔记]]可以把相关笔记串联起来,形成知识网络 - 插件生态:4000+ 插件,几乎可以扩展成任何你想要的工具
OpenCode + Claudian:嵌入 Obsidian 的 AI 助手
OpenCode 是一个开源的 AI 编码助手。而 Claudian 是一个专门为 Obsidian 设计的 AI 代理——它直接运行在你的 Obsidian 窗口里,能读写你的笔记文件,就像你多了一个精通算法、熟悉 PHP 和 Go 的私人助教。
Claudian 最大的特点是 "Obsidian Native":
- 它理解 Markdown、YAML frontmatter、Wiki 链接
- 可以在你的笔记目录里直接创建、编辑、整理文件
- 每次对话都带着当前笔记的上下文
- 你选中一段代码发过去,它直接在 vault 里帮你写好题解笔记
Claudian 本身是一个模型无关的 AI 框架,可以接入多种后端:
| AI 后端 | 费用情况 |
|---|---|
| Claude (Anthropic) | 付费 |
| OpenCode | 免费+付费模型可选 |
| PI (Codestral) | 免费额度 |
| Codex (CURSOR) | 付费 |
我目前用的是 OpenCode 的后端,选用 DeepSeek V4 Flash 模型——完全免费,速度和效果都很满意。
我的 LeetCode 刷题工作流
第一步:看题,自己先写一遍
看到一道题,先自己独立思考。用 PHP 先写一版,确保算法逻辑想通了。然后用 Go 再写一遍。
这一步不依赖 AI,目的是暴露问题——只有自己写过才知道哪些地方不清楚。
第二步:把代码丢给 Claudian
写完代码后,选中代码,直接在 Obsidian 里发给 Claudian:
帮我看看这段代码哪里有问题
Claudian 会:
- 找 bug——不光是逻辑错误,还包括类型系统的隐性坑
- 解释原因——为什么这个写法能编译通过但逻辑不对
- 对比语言差异——PHP 这样写可以,为什么 Go 不行
举个例子,写 myAtoi 的时候我犯了这个错:
// 我写的
for i < n && i >= '0' && i <= '9' {
// 应该写成
for i < n && s[i] >= '0' && s[i] <= '9' {
i 和 s[i] 在 Go 里都是整数类型,编译能过,但逻辑全错。Claudian 帮我揪出这个 bug 的同时,还解释了 Go 无类型常量的弹性机制——我算是彻底搞懂了。
第三步:追问到底
这是最值钱的一步。Claudian 解释完 bug 后,我会追着问:
- "Go 的
int和int32到底有什么区别?" - "PHP 字符串比大小是按 ASCII 码吗?"
- "
math.MaxInt32是什么类型?"
Claudian 会根据你的背景(PHP 开发者转 Go)来做针对性解释,拿 PHP 的概念做类比,帮助理解 Go 的设计。
第四步:沉淀成笔记
问明白了之后,让 Claudian 直接按模板生成题解笔记:
按照 AGENTS.md 的模板,帮我生成这道题的题解笔记
Claudian 会自动:
- 在
LeetCode/目录下创建题号. 题目名称.md - 按「题目描述 → 解题思路 → PHP 解法 → Go 解法 → 差异总结 → 扩展知识」的结构组织
- 把刚才踩的坑也写进"经典踩坑点"章节
- 加上标签(
#leetcode #字符串 #溢出处理等)
笔记永久保存在 Obsidian vault 里,以后随时可以用 [[题号]] 链接引用。
整个流程的用时
自己写代码: 8 分钟
AI review: 3 分钟
追问理解: 5 分钟
生成笔记: 2 分钟
总计: 18 分钟
比传统方式省去了"去论坛看题解 → 理解别人写的 → 自己再翻译成笔记"这个绕路的过程。
为什么这个搭配效果好?
1. 零上下文切换
Claudian 直接嵌在 Obsidian 里,不需要在浏览器、编辑器、笔记软件之间来回切换。选中代码 → 发送 → 收到解答 → AI 直接写入笔记,全程在一个界面里完成。
2. 知识沉淀自然发生
传统 AI 对话用完就没了,下次想问同类问题还得重新问。而在这个工作流里,每次对话的成果都会被 AI 以笔记形式写入 vault,形成长期积累。几周后回头看,你会发现已经建立起一个完整的算法知识库。
3. 用 AGENTS.md 定义你的专属 AI 认知
Claudian 是怎么做到知道你的背景、理解你的需求的?关键在于 AGENTS.md——和 AI 协作的"工作说明书"。
在 Obsidian vault 的 LeetCode/ 目录下,有一个 [[LeetCode/AGENTS.md]] 文件,里面写着:
# AI Agent 工作指南
## 用户背景
- 身份:PHP 开发工程师
- 学习目标:学习 Go 语言
- 当前状态:对 Go 语言语法不太熟悉
- 练习方式:LeetCode 算法题,每道题用 PHP 和 Go 各写一遍
每次跟 Claudian 对话时,它会自动读取这个文件,从而知道:
- 你的身份和当前水平
- 你的学习目标
- 你偏好的输出格式
- 你想要对比哪些方面
所以它给出的解答天然就是针对你的——不是泛泛的通用题解,而是一个懂你的助教。
AGENTS.md 的价值不止于此。 它不只限于算法题,你可以扩展到任何场景:
## 用户背景
- 身份:前端开发,刚转后端
- 技术栈:熟悉 React,想学 Go
- 痛点:数据库设计经验不足
- 输出要求:每个方案要附带 ER 图说明
只要在 AGENTS.md 里写清楚你是谁、要什么、偏好什么格式,AI 就会按照这个模板来交付。 这也是整个工作流中最有扩展性的一环——每个人都可以根据自己的需求来定制,不限于 PHP、不限于 LeetCode、不限于学语言。
如何开始使用?
安装 Obsidian
- 前往 obsidian.md 下载对应系统的客户端
- 创建一个 vault(知识库文件夹),或者直接使用已有的 Markdown 笔记文件夹
- (可选)安装社区插件增强功能
安装 OpenCode
- 前往 opencode.ai 下载客户端
- 安装完成后启动,注册账号
- 在 Settings → Models 中选择 DeepSeek V4 Flash(免费)或其他可用模型
- 在你的 Obsidian vault 根目录启动 OpenCode,它会自动识别 vault 结构和文件
配置 Claudian
OpenCode 内已包含 Claudian Agent 模式,启动后默认激活。你也可以自定义配置 opencode.json 来调整 AI 的行为模式(安全模式、权限级别等)。
下面是我的工作区
最后
这套工作流我用了一个多月,最明显的感受是:以前刷题是靠记忆,现在刷题是在构建知识体系。
每一道题不是刷完就扔,而是融入了自己的知识库,跟之前的知识形成了网络。Claudian 负责接住我的代码,指出我看不见的问题,然后把所有的认知沉淀成笔记。我只需要做一件事——专注思考。
工具组合在这里:
- Obsidian:https://obsidian.md
- OpenCode:https://opencode.ai
- DeepSeek V4 Flash:OpenCode 内免费使用
如果你也在刷题,不妨试试这个搭配。
完整的AGENTS.md文件,可以查询这个仓库:https://github.com/helloHupc/daily-algo







