Tip
labuladong 的刷题全家桶 由学习网站、《算法秘籍》《刷题笔记》两本 PDF、Chrome/vscode/Jetbrain 三个不同平台的刷题插件组成,致力于为大家提供最丝滑的刷题体验。公众号后台回复关键词「全家桶」即可获取下载和使用手册。
Note
虽然我叫这款插件为「Chrome 插件」,但实际上插件并不仅限于 Chrome 浏览器安装使用。像 Edge 浏览器、360 浏览器这些使用 Chromium 内核的浏览器都可以安装,具体见安装指南。
视频介绍
最近录了一个视频介绍 Chrome 插件的主要功能,喜欢看视频的读者可以去 B 站观看:
为什么要安装我的 Chrome 插件
建议我的读者都安装我的 Chrome 刷题插件,它的主要功能有两个:
1、在力扣和 LeetCode 的页面上添加「题解」和「思路」按钮,方便你跳转查看我的算法文章和解题思路:

2、辅助 我的网站会员 在网页上学习,可以直接在网页上查看所有算法教程,享受代码图片注释、算法可视化动画等功能,不必跳转到小鹅通:

肯定有小伙伴问,力扣不是有题解和评论区吗?为啥还要安装你的这个插件呢?
首先,我建议你装插件,又没有说不让你学习别人的解法对吧,咱们多方学习,勤于思考,没毛病。
不过我的插件确实有它独特的价值。我先问一句,你是否有这样的困惑:看到新的算法技巧会大呼精妙,以为自己学会了,但下次换个题目,还是做不出来。
如果有,我告诉你为啥,因为人家给你看的只是最后的解法,一般不会给你讲清楚各个算法技巧之间的联系。
比方说,这个技巧 C 可能是技巧 B 和技巧 A 结合衍生出来的,人家只告诉你技巧 C 是什么,你直接从零开始接触 C 就会觉得这个思路不可能是普通人想出来的,甚至产生对算法的畏惧心理,更别说举一反三了。
但实际上,如果你能由浅入深,先了解 A 和 B,再接触 C,就不会觉得 C 有多了不起,你自己也可以推导出来,甚至你能随意变化 C 去解决更多新的的算法题。
我的文章和思路是经过精心设计浑然一体的,每道题的思路中会引用所有相关的技巧,插件可以保证你看到一道题,都可以寻根溯源由浅入深地学习到对应的算法技巧以及思维方法。
比如「丑数 II」这道题目:

乍一看这像是一道数学题,但实际上它掺杂了 高效寻找素数 中讲到的筛数法和 单链表的六大解题套路 讲到的单链表合并的技巧,我在插件中不仅给出了文章的链接,还给出了对应题目的链接,你可以去点击应题目的「思路」按钮对比题目之间的相似之处。
另外,很多小伙伴不是说看到题目没有思路,不知道从何下手吗?我会如实地分享我的思考过程,以及我这么想的依据是什么。虽然少数时候我的方法不是最优的,但我的方法一定是最「模板化」的。这种模板化的思考过程能够大幅提高初学者学习算法的效率:

这就是我的刷题插件独有的价值,相当于我给你打造了一套完整的刷题工具链,如果你认可我算法教程的质量,那么使用我开发的配套工具,显然能给你提供最好的学习体验。
功能展示
总览

题目列表渲染
力扣 or LeetCode 的所有题目列表和题目详情页中会显示我的题解/思路按钮,支持所有常用编程语言:

点击「题解」按钮即可跳转到网站对应文章学习,点击「思路」按钮即可查看我精心撰写的简明解题思路和代码。
同时,我把公众号里所有我讲过的题目整理出一份列表,安装插件后访问可以看到效果:
力扣版 | LeetCode 版 |
---|---|
https://leetcode.cn/problem-list/59jEaTgw/ | https://leetcode.com/list/9zwo3ww5/ |
思路/题解辅助刷题
题目详情页也会显示题解和思路按钮,可以直接复制带详细注释的代码,刷题非常方便:

代码图片注释
对于比较复杂的解法,代码中会包含图片注释,方便理解代码逻辑。鼠标移动到小灯泡图表即可查看图片注释:

算法可视化面板
「思路」展开后,解法代码下方会显示一个可交互的算法可视化面板,帮助理解算法的执行过程:

可视化面板的具体功能请参考 算法可视化面板简介。
用一个 GIF 展示一下丝滑的使用体验:

辅助解锁网页内容
我的付费课程/内容部署在小鹅通平台,但小鹅通平台并没有网页灵活,无法支持诸如算法可视化面板等可交互内容。
所以我在最新的 Chrome 插件中添加了额外功能,插件可以和我的刷题网站连接,辅助网站会员/课程学员在网页上学习,可以直接在网页上查看所有算法教程,享受代码图片注释、算法可视化动画等功能。
购买课程后点击插件弹出中的数据刷新按钮,即可在网页解锁对应内容,具体请查看对应课程的首页,这里以解锁 网站会员 为例:

安装方式
Chrome 刷题插件不止支持 Chrome 浏览器,像 Edge 浏览器、360 浏览器这些使用 Chromium 内核的浏览器都可以通过离线安装 crx 文件的方式安装。
Chrome 浏览器用户有条件的话建议直接在 Chrome 商店下载:
https://chrome.google.com/webstore/detail/leetcode-helper-by-labula/elafhogmnaapleckojedgipgmidneccg
Edge 浏览器用户可以直接在 Edge 商店下载(国内也可以访问):
如果无法在线安装,也可以离线安装。在公众号后台回复关键词「插件」下载最新版本 crx 文件:

有了 crx 插件文件,可以按照此文的安装方法进行手动安装:
https://cloud.tencent.com/developer/article/1894180
安装成功后,可以在插件列表看到插件图标:

点击插件图标可以弹出插件弹窗,包含刷新数据的按钮和很多有用的链接:

更新方式
1、在 Chrome/Edge 商店安装的,会在新版本发布后自动更新。
2、通过 crx 文件离线安装的,我会在发布新版本之后更新百度网盘中的 crx 文件,所以你只需要重新在公众号后台回复关键词「插件」即可下载最新版本插件,再次安装即可。
建议将插件固定在插件栏,有更新时会有 new
的提示字样:

更新日志
详见 Chrome 插件更新日志。
插件配置方法
右键点击插件图标会弹出一个「选项」按钮(Edge 浏览器类似):

点击「选项」按钮即可对插件进行配置:

是否渲染题目列表
渲染设置可以选择是否对题目列表中有题解/思路的题目进行渲染:

设置 GitHub/Gitee 数据源
网页跳转设置可以配置「题解」按钮跳转到 Gitee Pages(https://labuladong.gitee.io/algo/)或者 GitHub Pages(https://labuladong.github.io/algo/):

插件数据也会同时存储在 Gitee 和 GitHub 上,刷新数据时也会根据这个配置去对应的平台上拉取。理论上 Gitee 在国内访问更快,但可能不稳定。所以如果你访问 GitHub 没问题,建议设置为 GitHub Pages。
快捷键设置
可以配置快捷键打开/关闭思路弹窗和复制解法代码。
常见问题的回复
安装插件后没有效果?
无法成功刷新插件数据(显示 ❌ 标记)?
问:为什么安装插件后没有效果?点击「手动刷新数据」也没有反应或全部显示 ❌ 标记?
答:大概率是你的网络问题。插件的默认配置是去 GitHub Pages 上拉取数据的,如果访问 GitHub 被限速了就可能出现这种情况。你可以尝试更换网络,或者参照前面插件的配置部分,把网页跳转设置设为 Gitee Pages。
问:火狐浏览器可以安装这个插件吗?
答:不支持,因为火狐浏览器用的不是 chromium 内核。以前还有办法安装,但现在 chromium 内核接口升级了,所以除非火狐官方适配,否则无法安装 Chrome 插件。
问:有时在更新插件时,为什么 Chrome 浏览器提示我插件需要「读取和更改我在 xxx 网站上的数据」?
答:实际上插件不会读取你的任何账户信息,而是插件需要读取该网站的页面 HTML,结果 Chrome 浏览器给了这么一句很容易让人误会的提示语。
借此机会科普一下,Chrome/Edge 商店上架都要经过严格的审核的,如果有恶意插件,根本上不了架,要知道国外对隐私的保护可是比国内强得多。
另外,关于权限申请这块我是很规范的,仅仅申请几个必须的网站权限,所以如果更新的时候需要新权限,Chrome 都会提醒你;不规范的做法是直接用通配符 https://*
申请所有网站的权限,这样每次需要新权限的时候也不会提醒你,但回头你也搞不清这个插件会在哪些网站上干什么事情。
所以下载插件一定要从正规的渠道下载,我的刷题插件的正规下载渠道目前只有 Chrome/Edge 商店,或者通过公众号后台的链接下载 crx 离线安装,其他的渠道很可能有安全问题。
问:macOS/Linux/Windows 系统都能用这个插件吗?
答:是的,插件是寄生在浏览器里的,和操作系统无关。只要你的浏览器能够安装插件,就可以正常使用插件。
bug 反馈
请转到我的 GitHub Discussion,查看一些常见问题的解决方案,如确定遇到 bug,按规则截图反馈:
https://github.com/labuladong/fucking-algorithm/discussions/704
共同维护高质量学习环境,评论礼仪见这里,违者直接拉黑不解释