力扣学习计划里的题目只能按固定顺序刷,想随机复习却没有随机按钮?
选一个正在进行的学习计划,随机抽一道题,也可以只抽当前计划中未完成的题。
一个为力扣中国站 leetcode.cn「学习计划」增加随机刷题功能的 Chrome / Edge 浏览器扩展,专门解决题单无法随机刷的问题。
只要是当前账号正在进行的学习计划都可以使用,例如:
- LeetCode 热题 100 / Hot 100
- LeetCode 75
- 高频 SQL 50 题
- 其他正在进行中的力扣学习计划
无论是日常复习,还是为找工作、校招或实习做准备,都可以把固定顺序的题单变成随机刷题模式。
力扣学习计划的题目顺序是固定的,但复习时经常并不想从第一题一路按顺序刷到底:
- 想打乱题单顺序,随机复习一道题
- 想只从自己选中的学习计划里抽题
- 想只随机当前这一轮还没有完成的题
- 想避开最近已经随机过的题
- 想模拟面试里“不知道下一题是什么”的感觉
- 不想把每日一题、推荐题、历史计划混进来
所以这个扩展只做一件事:
读取当前账号正在进行的学习计划
↓
选择一个计划
↓
读取该计划的完整题单和当前这一轮完成状态
↓
随机一道题
- 🎲 从指定学习计划中随机一道题
- ✅ 支持只随机「当前这一轮未完成」的题
- 🗂️ 支持 Hot 100、LeetCode 75、SQL 50 等正在进行的学习计划
- 📚 自动读取当前账号正在进行的学习计划
- 🔽 支持自由选择要随机的学习计划
- 🔁 支持避免最近随机过的题重复出现
- 🆕 支持在新标签页打开题目
- 💾 自动记住上一次选择的学习计划
- ⚡ 题单缓存 + 完成状态短期缓存,连续随机更快
- 🧩 Manifest V3,支持 Chrome / Edge 开发者模式安装
- 🔐 数据只在浏览器本地处理,不连接第三方服务器
不会混入:
- 每日一题
- 推荐题
- 题库随机题
- 已结束的历史学习计划
- 当前计划之外的题
打开插件后:
学习计划
┌──────────────────────┐
│ LeetCode 热题 100 ▼ │
└──────────────────────┘
🎲 随机一道
☑ 只随机未完成题
避免近期重复:5 道
☐ 新标签页打开
点击「随机一道」后,会直接打开随机到的具体题目。
目前还没有发布到 Chrome / Edge 扩展商店,可以通过开发者模式安装。
点击 GitHub 页面右上角:
Code → Download ZIP
然后解压。
也可以使用 Git:
git clone https://github.com/SynZzz-x/leetcode-random-studyplan.gitChrome:
chrome://extensions/
Edge:
edge://extensions/
- 开启「开发者模式 / 开发人员模式」
- 点击「加载解压缩的扩展」
- 选择本项目文件夹
- 确认扩展已经启用
安装完成后,建议把插件固定到浏览器工具栏。
先确保当前浏览器已经登录:
https://leetcode.cn/
然后:
- 点击浏览器工具栏里的插件图标
- 第一次使用时点击「↻ 刷新」
- 选择一个正在进行的学习计划,例如「LeetCode 热题 100」
- 点击「🎲 随机一道」
插件会直接打开随机到的题目。
这个功能专门处理重新开启学习计划时很容易踩坑的问题。
假设你以前已经完成过一次:
LeetCode 热题 100
100 / 100
后来你重新开启了一轮:
LeetCode 热题 100
0 / 100
插件不会因为你以前 AC 过这些题,就把当前这一轮误判成全部完成。
它会尽量按照当前正在进行的这一轮学习计划判断完成状态:
以前 AC 过
≠
当前这一轮已经完成
这样重新刷 Hot 100、LeetCode 75 或 SQL 50 时也可以正常使用。
可以设置最近多少道题不重复:
关闭
3 道
5 道
10 道
20 道
例如设置为 5 道,最近随机过的 5 道题会暂时从候选池中排除。
不同学习计划会分别记录,Hot 100 的记录不会影响 SQL 50。
v2.6 主要减少随机等待时间:
- 题单本地缓存 6 小时
- 完成状态按批并行查询
- 30 秒内连续随机可复用短期状态缓存
- 手动「只刷新题单」可以强制绕过缓存
- 如果未完成状态读取失败,不会把全部题目误当成未完成
详见 TEST_REPORT.md。
这个插件不会要求输入力扣账号或密码。
它只使用浏览器里已经存在的 leetcode.cn 登录状态读取学习计划。
不会:
❌ 上传 Cookie
❌ 上传账号信息
❌ 上传做题记录
❌ 上传学习计划
❌ 连接第三方服务器
插件访问范围仅限:
https://leetcode.cn/*
随机记录、缓存和设置都保存在浏览器本地。
- Browser Extension Manifest V3
- 原生 JavaScript / HTML / CSS
chrome.storage.local保存题单缓存和随机历史chrome.storage.sync保存用户偏好设置- 仅请求
https://leetcode.cn/*
主要文件:
manifest.json 扩展配置
background.js 标签页调度、缓存、打开题目
content.js 读取学习计划与题单数据
popup.js 弹窗交互与随机逻辑
popup.html 插件弹窗
popup.css 弹窗样式
可以使用 Node.js 对主要脚本做语法检查:
node --check background.js
node --check content.js
node --check popup.js发布前建议真实浏览器验证:
- 任意学习计划第一次随机
- 30 秒内连续随机 3 到 5 次
- 等待 30 秒后再次随机
- 「只随机未完成题」开 / 关
- 「新标签页打开」开 / 关
- AC 一道题后刷新题单并确认完成状态变化
- 按简单 / 中等 / 困难随机
- 指定题型随机
- 随机后显示本次抽题记录
- 今日随机刷题数量
- 每日随机挑战模式
- 支持更多题单筛选
- 更方便的快捷键
欢迎提 Issue 或 PR。
如果你也在使用力扣学习计划,并且觉得:
学习计划如果能随机刷就好了。
那这个插件应该正好适合你。
遇到 bug 时,建议附带:
- 浏览器版本
- 插件版本
- 学习计划名称
- 问题截图
- 是否开启「只随机未完成题」
如果这个项目帮到了你,欢迎 Star。
有人用的话,我会继续维护。