力扣刷题的正确姿势是什么?

本文原本是打算加到我的新书《算法通关之路》的附录部分。不过由于力扣官方不过审,因此只好作罢。将这部分内容发到这里给大家参考。

《算法通关之路》介绍以及购买可访问:https://leetcode-solution.cn/...

力扣(LeetCode )网站使用方法

力扣(LeetCode )官网收录了许多互联网公司的算法题目,一度被称为刷题神器。这里我们就来介绍下如何使用 力扣(LeetCode )网站。

由于力扣(LeetCode)本身也处于不断迭代之后,因此本文部分内容有可能在将来会变得不再适用。

以力扣国际站为例,其官网给出了四个分类:Algorithms、Database、Shell 和 Concurrency,分别表示算法题、数据库题、Shell 和并发题,第一个就是我们所需要刷的算法题。

并发是 2019 年才添加的新的模块。

点开 Algorithms 后,我们可以看到一个题目的列表,每个题目都有一个唯一的序号。力扣(LeetCode )目前有 1000 多道题目,并且一直持续更新,其中有一些是带锁的,需要会员才能查看。

后面的接受率(Acceptance)表示提交的正确率,Difficulty 表示难易程度。难易程度有三个级别,分别是 Easy、Medium 和 Hard。

  • Easy 通常不需要太多思考和也不会有复杂的细节,比较特别适合新手或者拿来热身。
  • Medium 级别就会有些难度,一般都会涉及到经典的算法,需要一定的思考。
  • Hard 级别是最难的,有些时候是算法本身的难度,有些时候特别需要你考虑到各种细节。
这里分享一个小技巧给大家。衡量一道题目难不难除了看难度之外,还可以看下接受率,接受率越低代表题目越难,这个指标有时候比难度更靠谱。

你可以对题目进行筛选和排序。

力扣刷题的正确姿势是什么?_第1张图片

如果我们只想要找某一类型的题或者某个公司的题库,可以通过 Tags 或 Company 来筛选。

力扣刷题的正确姿势是什么?_第2张图片

另外我们在做某一题时,觉得还想再做一个类似的,可以点击题目描述下方 Show Similar Problems 或 Tags 来找到相似的问题。

每个题目都有各自的 Discuss 区域。在这里,许多人都把自己的思路和代码放到了上面,你可以发贴提问,也可以回复别人,里面大神很多,题解质量都很高,如果实在没有思路或者想看下有没有更好的思路可以来逛一下。通常来说我建议你优先看留言最多或者投票最多的。

点开某一个题目,会跳转到具体题目详情页面,你可以在右侧的代码区切换选择自己需要的编程语言。

代码编写完了之后,不要急着提交,先测试运行一下(Run Code 按钮)。你可以多写几个测试用力跑一下,没有问题再提交,要知道比赛的时候错误提交要加时间的。

提交通过之后,可以点开 More Details 查看详细运行结果信息。

每道题旁边的 My Submissions 可以找到自己的对于该题的提交情况,这里可以看到自己过去所有的提交,点 Accepted 或 Wrong Answer 就可以查看自己过去提交的代码情况,包括代码是什么,运行时间以及全部用户提交的时间分布图等。

力扣刷题的正确姿势是什么?_第3张图片

以上就是 力扣(LeetCode )的主要功能,希望通过这一节内容能让你对 力扣(LeetCode )网站有所了解,从而更快地进行刷题。

刷题工具

所谓“工欲善其事必先利其器”,接下来给大家带来一些提高刷题效率的小工具。

力扣代码调试器

力扣刷题的正确姿势是什么?_第4张图片

力扣代码调试器是一款简单易用的代码调试工具,它能够随时检查代码的运行情况以及选择性地运行代码,以便您排错、调试。

力扣代码调试器支持以下特色功能:

  • 支持无限制添加断点,单步运行调试
  • 一键监听表达式,动态追踪变量,及时定位错误

「力扣代码调试器」处于内测阶段,具体功能可能会不定期调整,请以最终 release 版本为准。代码调试器目前支持 C++、Java、Python、Python3、C 等 5 种语言,持续更新中。

值得注意的是,这是一个会员才可以使用的功能。

力扣(LeetCode )For VSCODE

力扣刷题的正确姿势是什么?_第5张图片

这个是一个可以让你在 VSCODE 编辑器中选题,写代码,测试,提交的力扣题目的插件。主要特点是可以利用自己编辑器的一切优势,包括但不限于编辑器主题,代码智能提示, 代码片段,调试工具。也就是说,上面提到的力扣代码调试器的大多数功能,你都可以通过 VSCODE 以及其扩展插件实现。

缺点是部分功能使用体验不好, 比如错误提示不明显,经常误提交等,不过最让我感到不舒服的是自定义测试用例,明显没有力扣官方做的好。

大家可以在 vscode 插件商店搜索 leetcode 进行下载安装。

LeetCode-Cheat

力扣刷题的正确姿势是什么?_第6张图片

题解模板

为了方便大家写出格式良好的题解,插件现在内置题解模板功能,目前模板只有一套,这套模板是我经常使用的题解模板

安装好我们的插件(版本需要 v0.8.0 及以上)后,打开力扣中文版,会发现如下的按钮。

力扣刷题的正确姿势是什么?_第7张图片

点击之后会自动引导你到一个新的页面,

力扣刷题的正确姿势是什么?_第8张图片

该页面的题解语言题目地址题目名称信息会自动填充。

你可以快速完成时间复杂度,空间复杂度的插入,复杂度已经按照性能好坏的顺序给大家排好了,点击即可插入。

此外我们提供了若干常用的公式供你快速复制使用。除了公式,其他内容都可以在右侧的预览区域查看。

写完只会可以点击复制,将其复制到其他地方以便持久化存储。由于我们没有做持久化存储,因此页面刷新内容就会消失哦

最后祝大家写出漂亮的题解!

数据结构可视化

你可以使用 canvas 自由绘制各种数据结构,不管是写题解还是帮助理解题目都很有用。

我们提供了很多内置的模板供你快速上手。

力扣刷题的正确姿势是什么?_第9张图片

如果你对内置的模板不满意,也可以将自己的模板保存以便下次使用。

力扣刷题的正确姿势是什么?_第10张图片

学习路线

算法怎么学?推荐按专题来。具体到某一个专题怎么学?这里提供了一个学习路线帮助你。本功能旨在将一个专题中的题目进行分类。专题本质就是对题目的一种划分,学习路线基于专题又进行了一次划分。

力扣刷题的正确姿势是什么?_第11张图片

复杂度分析

你的代码能会超时么?复杂度分析帮助你。

力扣刷题的正确姿势是什么?_第12张图片

一键复制所有内置测试用例

省去了一个个手动复制的过程,效率翻倍!

力扣刷题的正确姿势是什么?_第13张图片

代码模板

提供了大量的经过反复验证的模板。模板的作用是在你理解了问题的基础上,快速书写,并减少出错概率,即使出错,也容易 debug。

禅定模式

力扣刷题的正确姿势是什么?_第14张图片

点击之后会变成这样:

力扣刷题的正确姿势是什么?_第15张图片

底部控制台会消失,当你鼠标重新移过来或者退出禅定模式就出现了。

查看题解

当你在任意非题目详情页或者我还没有收录的题目详情页的时候, 我都会列出当前我总结的所有题解。

其实我给比较经典的题目做了题解,因此这个题目数目不是很多,目前是 173 道题。另外有时候我直接写了专题,没有单独给每道题写题解,因此数量上要比 173 多很多。

当你进到一个我写了题解的题目详情页的时候, 你就可以正式使用我的插件了。 它可以:

  • 给出这道题目的前置知识。换句话说就是我需要先掌握什么才能做出这道题
  • 这个题目的关键点。
  • 哪些公司出了这道题。
  • 我实在不会了,给我看看题解吧。好,满足你。
  • 题解我就不看了,直接 show me code 吧。好,满足你。
  • 根据公司,查找题目。面试突击必备

后期规划:

  • 更多公司信息。 持续完善题目的公司信息,这个过程需要大家的帮助,大家可以把自己面试遇到的问题发给我(附带公司和岗位信息),我可以免费提供咨询服务。
  • 岗位信息。
  • 可视化调试。 可视化展示你的代码允许情况。
  • 自动制定复习计划。
  • A I 智能提示。即新的提示也可以根据题目信息推测可能的解法。
  • 等等

需要的话,可以去我的公众号《力扣加加》回复插件获取。

LeetBoard

力扣刷题的正确姿势是什么?_第16张图片

这是一个帮助你写写画画的一个浏览器扩展工具。很多时候,我们需要在纸上演算一下,验证自己的思路,这个时候就可以用这个工具。

这个工具提供了多种常见数据结构的可视化,方便大家快速书写。目前支持的数据格式有:数组,链表,二叉树。

力扣刷题的正确姿势是什么?_第17张图片

debug-visualizer

力扣刷题的正确姿势是什么?_第18张图片

这是一个支持可视化调试的 VSCODE 插件。相比于平时我们 debug ,它能帮助我们可视化内存中的数据结构。比如数组,树,图等都可以胜任。由于其不是为力扣量身制作的,实际上它还有很多其他的用处, 比如可视化图表,比如折线图。其功能非常强大, 你甚至可以基于它定制一套自己专属的数据结构。

大家可以在 vscode 插件商店搜索 leetcode 进行下载安装。

总结

这五种工具,除了 debug-visualizer,其他都是为力扣量身定做的。

各个工具功能侧重各不相同, 大家也可以结合起来使用。总的来说:

  • 如果你想在编辑器中写力扣,那么 力扣(LeetCode )编辑器插件是一个不错的选择。配合 debug-visualizer 可以实现丝滑般柔顺的感觉。
  • 如果你想在力扣解题过程中写写画画,屡屡思路,建议使用 LeetBoard。
  • 如果你想看看题目的公司信息, 题解等,建议使用我写的 LeetCode-Cheat。
  • 如果你不想使用本地编辑器, 并按照一堆插件,只想用浏览器去完成,那么力扣代码调试器绝对是不二选择。

另外还有一些网站可以可视化算法的执行过程,这对算法初学者来说尤其重要,algorithm-visualizer 就是这样的一个网站,它收录了几乎全部常见的算法, 相信可以满足你。

你可能感兴趣的:(leetcode算法工具)