Why?
最近因为出差,经常坐飞机。在飞机上很无聊,steamdeck 也玩腻了,就想刷刷题,但是 leetcode 却完全没有离线功能。。于是借助 ai 做了一个离线版的 leetcode。
核心功能
- 本地题库: 内置 20+ 道经典算法题目
- AI 题目生成器: 使用 DeepSeek-V3 AI 生成无限自定义题目
- 多语言支持: 支持 JavaScript、Python、Java、C++ 和 C 语言编码和测试
- Monaco 代码编辑器: VS Code 级别的编辑体验
- 即时测试: 立即运行测试并查看详细结果
- 性能指标: 执行时间和内存使用量跟踪
- 动态题目管理: 无需重新构建即可添加/编辑题目
技术栈
- 前端: React 18 + Next.js 13 + TypeScript
- UI 框架: Mantine v7 (现代 React 组件)
- 代码编辑器: Monaco Editor (VS Code 引擎)
- 代码执行: vm2 (安全的 JavaScript 沙箱)
自定义
添加新题目(无需重新构建!)🎯
应用支持在离线环境下添加/修改题目,无需重新构建!
- 编辑题目数据库: 在构建后的应用文件夹中打开
public/problems.json - 添加你的题目: 按照 JSON 格式(详见
MODIFY-PROBLEMS-GUIDE.md) - 保存并刷新: 更改立即生效!
例子: 通过编辑 public/problems.json 添加新题目:
{
"id": "reverse-string",
"title": {
"en": "Reverse String",
"zh": "反转字符串"
},
"difficulty": "Easy",
"tags": ["string"],
"description": {
"en": "Write a function that reverses a string.",
"zh": "编写一个函数来反转字符串。"
},
"template": {
"js": "function reverseString(s) {\n // 你的代码\n}\nmodule.exports = reverseString;"
},
"tests": [
{ "input": "[\"h\",\"e\",\"l\",\"l\",\"o\"]", "output": "[\"o\",\"l\",\"l\",\"e\",\"h\"]" }
]
}
查看 MODIFY-PROBLEMS-GUIDE.md 获取完整说明
一些截图: