LeetCode 的正确使用方式

LeetCode 的题库使用方式

LeetCode 的题库是很庞大的。面对庞大的题库,只有正确使用才能达到最好的效果。

做题方式

常见的一种做题方式是:按照题号顺序依次做题。这种做题方式并不好,因为 LeetCode 的题目顺序并没有特定含义,既不是按照难度排序,也不是按照知识点排序,如果按照题号顺序做题,则每道题的难度和知识点都没有关联性,做题效果是不好的。

还有一种做题方式是:按照难度从低到高的顺序做题。这种做题方式比上一种做题方式好,但也不是最好的做题方式。前期做的都是难度低的题目,可能都会做,一旦做到难度高的题目就不会做了,这种做题方式没有对专门的知识点进行针对性的练习,效果也不是最好。

什么样的做题方式是最好的呢?做题需要和知识点的学习结合,因此应该一段时间练习特定知识点的题目。LeetCode 有标签功能,每个标签都关联特定的知识点,可以在题库页面按照标签筛选题目,做同一个标签下的题目,就是对同一个知识点的题目进行练习。

如何做题

LeetCode 的题目有不同的难度,难度低的题目可以很快想出解法,提交通过,难度高的题目则可能无法想出时间复杂度足够低的解法,甚至完全没有思路。对于会做和不会做的题目,应该如何做题呢?

对于会做的题目,应该自己写代码实现算法。如果提交通过,则说明实现是正确的。提交正确之后并没有结束,同一道题目可能有多种解法,也可能有更优的解法,因此需要参考其他人的解法。其他人的解法可以在国服的题解区以及世界服的讨论区看到,高票题解通常是质量高的题解。国服的「力扣官方题解」发布的官方题解通常有很大的参考价值,官方题解一定包含复杂度最优的解法。

如果自己写的代码没有提交通过,则应该首先自己排查错误,发现错误原因然后改正,提交通过之后再参考其他人的解法。

如果遇到难题,无法想出时间复杂度足够低的解法,甚至完全没有思路,很多人的做法是死磕到底,花几个小时做一道题。其实,这种做法是非常不可取的,不会做的题目即使想几个小时,也未必就会做,即使想了几个小时之后确实想出了提交通过的解法,也花费了大量时间,想出的解法也未必是最优解法,这样的做题效率是很低的。

正确的做法是,规定一个思考的时间上限,可以是 5 分钟或 10 分钟,最多不超过 15 分钟,如果有思路就写代码实现,如果没有思路,或者发现代码无法提交通过,则不应继续死磕,而是应该直接看题解。看题解的目的是理解题目的解法,为了达到目的,应该首先记忆题解的思路和代码,然后尝试理解,最重要的是过遍数。

LeetBook

LeetBook 是 LeetCode 的另一个功能,可通过学习页面进入。

LeetBook 的内容颇为丰富,以数据结构和算法为主,也有别的方面的内容,是很好的学习资源。

对于数据结构和算法,如果没有基础,建议先在 LeetBook 进行学习,然后进入题库页面做题,对知识点有一定了解之后,做题的效果更好。

竞赛

在学习和做题一段时间之后,可以参加竞赛,检验训练的成果。

季赛的平均难度高于主站题目,且一年只有两次,因此参加竞赛应该以周赛和双周赛为主。

竞赛题目难度分布

周赛和双周赛的比赛时长是 90 分钟,包括 4 道题,每道题的难度情况大致如下:

  • 第 1 题考查数据结构和算法的基础概念,只要对相应的知识点有所了解即可做出;
  • 第 2 题考查数据结构和算法的简单使用,在理解相应的知识点的基础上可以做出;
  • 第 3 题考查数据结构和算法的深入理解,有一定难度,要求对相应的知识点有充分的掌握;
  • 第 4 题考查数据结构和算法的应用,或综合考查多个知识点,难度一般明显高于前 3 道题。

竞赛结果和复盘

对于新手而言,竞赛题全都不会做或者只做出第 1 题是很正常的。和平时做题不同,竞赛有时间限制,没有题解和提示,因此必须在有限的时间内独立完成题目。竞赛题没有正确作答,原因可能是知识点的掌握不够,或者时间复杂度过高导致超时,也可能是读题不仔细或者思路错误。平时做题可能会忽略这些问题,在竞赛时就可能暴露出平时忽略的问题。

除了做出的题目数量以外,做题速度也非常关键。在两位选手的得分相同的情况下,用时不同,排名也可能相差几百名,因此,在训练的过程中也要重视做题的熟练度。

在竞赛中取得好成绩需要多方面的因素,除了实力以外,心态也很重要,良好的心态有助于正常发挥,而不好的心态会导致思路受限,轻则用时更多,重则会做的题目未能在竞赛时做出。

在有条件的情况下,应该坚持参加竞赛。即使刚开始参加竞赛时的成绩不理想,随着做题数量的增加和参加竞赛的场次的增加,竞赛成绩也可以提升。

竞赛目标

竞赛的前 3 道题的难度有限,在经过长期的训练之后是可以达到做出前 3 道题的实力的,而第 4 题可能很难,有时候会超过大多数面试的要求,因此,对于大多数人而言,竞赛的目标应该是确保每次都能做出前 3 道题。这个目标可以分解成若干较小的目标:

  1. 对于初学者,目标为首先做出第 1 题,然后做出前 2 题;
  2. 对于有一定基础的选手,目标为前 2 题保证时间和正确率,然后做出前 3 题;
  3. 对于实力较强的选手,目标为前 3 题保证时间和正确率,名次稳定在前 200 名;
  4. 对于实力更强的选手,目标为前 3 题保证时间和正确率,争取做出第 4 题,名次进入前 100 名。

虽然每次竞赛题目的难度分布大致相同,但是不同场次竞赛的题目难度仍然会有差异。有些场次的第 4 题的难度明显偏低,甚至还达不到另一些场次的第 3 题的难度,做出全部 4 题的选手可能多达几百人。有些场次的第 4 题的难度很高,做出第 4 题的选手可能只有几十人,做出前 3 题且用时足够短的情况下也可能进入前 100 名。因此,更应该注重名次,而不是做出多少题和花了多少时间。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 1. 首先,需要在VSCode中安装C++插件,可以在扩展商店中搜索"C++",然后安装Microsoft官方提供的"C++"插件。 2. 接着,需要在本地安装C++编译器,比如gcc或者clang。可以在终端中输入"g++ --version"或者"clang++ --version"来检查是否已经安装。 3. 在VSCode中打开leetcode题目的文件夹,可以使用"Open Folder"命令,或者直接在终端中进入该文件夹。 4. 在VSCode中打开终端,可以使用"Terminal"菜单或者快捷键"Ctrl + ` "。 5. 在终端中输入命令"touch main.cpp",创建一个名为"main.cpp"的文件。 6. 在VSCode中打开"main.cpp"文件,开始编写代码。 7. 编写完代码后,在终端中输入命令"g++ main.cpp -o main",将代码编译成可执行文件。 8. 在终端中输入命令"./main",运行可执行文件,查看代码是否正确。 9. 如果代码正确,可以将代码提交到leetcode网站进行测试。 ### 回答2: VSCode 是一种非常流行的开源代码编辑器,可以用于编写各种计算机编程语言。LeetCode 是一种学习和练习算法的平台,它提供了许多编程问题和测试数据,使得程序员可以通过解决这些问题来提高编程能力。 为了在 VSCode 上刷 LeetCode,首先我们需要安装 C 语言的编译器和调试器。常见的 C 语言编译器有 gcc 和 clang,它们可以在大多数操作系统上运行,例如 Windows、Mac、Linux 等。同时,为了方便调试,我们可以安装 VSCode 的插件,例如 C/C++、Code Runner 等。 安装好编译器和插件后,我们需要在 VSCode 中创建一个新的 C 语言项目,例如可以在终端中使用命令 `mkdir my_leetcode` 创建一个新的目录,然后在 VSCode 中打开这个目录。接着,在 VSCode 的编辑器中创建一个新的 C 文件,例如 `main.c`,并且在这个文件中编写自己的 LeetCode 解法代码。要注意,我们需要包含正确的头文件,并且使用 main 函数来调用我们编写的算法。 编写完代码后,我们可以使用插件中的 Code Runner 来运行这个程序。在编辑器中按下快捷键 Ctrl+Alt+N,或者通过右键菜单选择 Run Code,就可以编译并运行我们的代码。同时,Code Runner 还可以在终端中显示程序的输出结果,方便调试和查看。 除了 Code Runner,我们还可以使用 VSCode 中内置的调试器来单步运行代码,查看变量的值和程序的执行流程。要使用调试器,我们需要在代码中打断点,然后点击 VSCode 的调试按钮来启动调试器。一旦程序到达断点,就可以逐步进行调试并查看变量的值,从而检查算法的正确性和性能。 总之,使用 VSCode 刷 LeetCode 能够较为方便地进行代码编写、调试和运行。我们只需要安装好对应的编译器和插件,然后按照标准的 C 语言写法来编写算法即可。通过不断地练习和掌握,我们能够更好地提高自己的编程水平和算法思维能力。 ### 回答3: VSCode是一种轻量级的代码编辑器,可以为编写代码提供丰富的功能和工具。它具有强大的语法高亮功能,可以轻松地切换不同的语言模式。对于刷leetcode来说,VSCode可以作为一个开发环境使用,主要有以下几个步骤: 第一步,安装和配置C/C++插件。在VSCode中,您需要安装一个C/C++插件,它可以用来编写和调试C/C++代码。安装该插件后,您需要根据自己的需求进行配置模板,以便更好地适应您的编程风格。 第二步,安装leetcode插件。为了方便,您可以通过在VSCode中安装leetcode插件,轻松访问leetcode网站并刷题。该插件提供了很多实用功能,包括搜索和筛选题目,提交代码并获得反馈等。 第三步,编写代码。通过安装C/C++插件,您可以在VSCode中轻松编写C/C++代码。在刷leetcode时,您可以使用VSCode的一些功能,例如代码折叠、语法高亮、代码补全等。 第四步,调试代码。VSCode中的C/C++插件还提供了一个非常强大的调试工具,可以帮助您调试C/C++代码。您可以在断点处暂停代码执行,查看变量值和堆栈信息等。这将大大简化调试过程。 总之,VSCode作为一个轻量级代码编辑器,具有强大的功能和工具,可以帮助您更轻松地刷leetcode。安装C/C++和leetcode插件以及适当的配置,可以大大提高您的编程效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伟大的车尔尼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值