LeetCode 的主要功能

LeetCode 简介

力扣 (LeetCode) 是定位为求职的做题网站,题库以算法题为主。LeetCode 的题目数量众多,而且在持续增加新题。

除了题库以外,LeetCode 还有学习、讨论、竞赛、求职、在线面试等功能。

LeetCode 的题库功能

LeetCode 的题库列表

LeetCode 的题库以算法题为主。除了算法题以外,还有数据库、脚本和多线程的题目,以及 2020 年新上线的《剑指 Offer》和《程序员面试金典》授权的题目。

题目难度

LeetCode 的题库中的题目难度分为三类,从低到高依次是简单、中等、困难。大多数题目的难度评定是比较准确的,但是有少数题目的难度评定不够准确,《剑指 Offer》和《程序员面试金典》授权的题目中,有较多的题目的难度评定是不准确的,因此难度仅供参考。

个人认为,LeetCode 的题目难度分为三类的粒度不够细,可以在每一类难度下进一步划分难度,因此笔者将题目难度细分成了 11 个等级,11 个等级与三大类难度的对应关系如下:

  • 简单对应 1 级到 3 级;
  • 中等对应 4 级到 7 级;
  • 困难对应 8 级到 11 级。

其中,11 级表示超出求职要求的难度,因此,11 级的题目是很少的。

细分的等级与 LeetCode 的三大类难度不一定完全对应,而是根据题目内容和复杂度要求决定。

题目标签

LeetCode 的题库有标签功能,标签只对算法题适用,包括主站的算法题和两本书上的算法题,以及多线程有一道题目和搜索相关因此也有标签。

每个标签都关联特定的数据结构和算法的知识点,可以根据标签筛选特定知识点的题目。

执行和提交

在 LeetCode 的编辑器里写好代码之后,可以在控制台自定义测试用例,然后执行代码,根据特定的测试用例检验代码的正确性。

除了执行代码之外,也可以提交代码,提交代码之后会使用全部的测试用例测试代码的正确性。

提交结果显示「通过」表示代码实现正确,且时间复杂度和空间复杂度都符合题目要求。除了「通过」以外,提交结果还可能有其他情况,列举如下。

  • 编译错误:代码本身有错,不能通过编译。
  • 执行出错:代码运行过程中发生运行时错误,例如空指针异常、下标越界等。
  • 解答错误:代码的输出和预期结果不一致。
  • 超出时间限制:某个测试用例运行用时过长,超出单个测试用例的时间限制,或者全部测试用例的总用时超出时间限制。
  • 超出内存限制:某个测试用例占用内存过高,超出限制。

其中,「解答错误」、「超出时间限制」和「超出内存限制」三种情况都会显示没有通过的测试用例(如果全部测试用例的总用时超出时间限制,则不会显示没有通过的测试用例)。

由此可见,要通过一道题,不只是运行结果正确就可以,还要满足题目限定的时间复杂度和空间复杂度要求。一般而言,时间比空间更重要,因此应该优先考虑降低时间复杂度。

评论和题解

每道题目都有评论区和题解区。评论区包括用户对题目的评论以及部分代码,题解区包括官方题解和用户写的题解。

题解区的题解质量高低不一,因此应该学习优质的题解。一般而言,官方题解(由「力扣官方题解」发布)、精选题解和排名靠前的题解都是优质的题解,是值得学习的。一道题目可能有多种解法,多看题解,也可以学到不同的解法。

LeetCode 的其他功能

学习

学习功能即为 LeetBook。LeetBook 的内容颇为丰富,以数据结构和算法为主,另外还有编程语言知识点整理、专业基础知识、设计模式、机器学习等方面的内容。

讨论

LeetCode 的讨论区包括求职面试、职场与内推、技术交流、文章分享、意见反馈五大板块。

在讨论区可以发布和参与讨论,在职场和技术等多个方面有所收获。也可以撰写文章。

讨论区支持收藏功能,可以对感兴趣的讨论和文章收藏,方便以后回顾。

竞赛

LeetCode 定期举办竞赛,竞赛分成两种,第一种是周赛和双周赛,第二种是季赛。竞赛根据选手的得分和用时排名,排名靠前者有积分奖励和实物奖励。

LeetCode 对竞赛的公平性非常重视,对于作弊行为是严格禁止的。一旦发现作弊行为,作弊者将面临积分清零和封禁帐号的处罚。

周赛和双周赛

LeetCode 定期举办竞赛,每周日举办一次周赛,每两周的周六举办一次双周赛。

周赛和双周赛的比赛时长是 90 分钟,包括 4 道题,每道题的难度和分值各不相同。比赛过程中可以按照任意顺序做题。

竞赛过程中,一道题目正确提交之后即为通过,得到这道题目的分值。如果提交错误,则会显示错误原因和结果错误的测试用例,需要根据错误原因排查错误,然后重新提交。有部分测试用例是隐藏的,如果结果错误的测试用例是隐藏测试用例,则只会显示错误原因,不会显示测试用例。

竞赛的排名依据是:首先根据选手的得分降序排序,在选手的得分相同的情况下,根据选手的用时升序排序。只有正确提交的题目才会考虑用时,对于正确提交的题目,在第一次正确提交之前的每一次错误提交都会产生 5 分钟的罚时。

季赛

LeetCode 的季赛为每年两次,包括春季赛和秋季赛,时间分别是每年的 4 月和 9 月。

每次季赛分为两场,个人赛和战队赛。个人赛要求选手独立完成,比赛时长是 150 分钟,包括 5 道题;战队赛要求选手组队完成,每个战队的人数限制为 1 人到 3 人,比赛时长是 180 分钟,包括 6 道题。每道题有不同的难度和分值。

季赛的规则与周赛和双周赛大致相同,不同之处是,季赛的错误提交都只会显示错误原因,不会显示结果错误的测试用例。

求职

求职页面可以搜索企业的面试题库和招聘信息,此外还可以模拟面试。

模拟面试有随机模拟面试、自定义选题模拟面试和企业题库模拟面试三种。

  • 随机模拟面试:面向所有用户,从题库中随机抽取 1 题到 3 题,根据题目数量决定面试时长,面试时长为 30 到 90 分钟。
  • 自定义选题模拟面试:面向所有用户,由用户自行在题库中选题,非会员只能选 1 题,会员最多可以选 3 题,根据题目难度决定面试时长的上限,面试时长可以向下调整。
  • 企业题库模拟面试:面向会员,可以选择特定企业的题库进行模拟面试,从企业题库中随机抽取 1 题到 3 题,根据题目数量决定面试时长,面试时长为 30 到 90 分钟。

模拟面试的实质是机试,在限定时间内完成题目。

在线面试

在线面试为真人面试。面试官需要创建面试,选定题目,将链接分享给面试者,面试者进入链接之后即可开始在线面试。

面试官选题时,可以添加 LeetCode 题、白板题和前端题。面试时可以使用音视频通话,面试官和面试者都可以对代码进行编辑。面试时可以自动判题,更客观地评价面试者的表现。

在线面试功能可以用于实际的面试,也可以用于真人模拟面试。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

伟大的车尔尼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值