如何在Leetcode达到2400分

笔者刷了半年题,Leetcode打到了2400分,国服排名300左右,算是一个里程碑吧,写下此文纪念,也算作给后来人一个经验贴。

笔者最初只是将Leetcode作为一个刷面试题的平台,防止工作面试时算法成为短板,但逐渐的,Leetcode成为了我的一个精神支柱,在懈怠之时,便看一看刷题群里、Leetcode Rank榜单里那些赫赫有名的人物仍然在激烈的讨论算法、学一些笔者根本听不懂的东西,也就有了继续学习的动力。

前言

防止被说成Leetcode云玩家,放一下自己的战绩。
图片说明

2021年4月开始集中刷,到11月初达到2400分,拢共7个月的时间,中间还有很多懈怠的时候,如果读者努力,5、6个月应该就可以超过笔者。

图片说明
图片说明

上面是clist得到的分数曲线和AC题数清单。远古时期的比赛不算,笔者是从3月底开始打Leetcode周赛的,尽可能每周都打。能看到一直到7月以前,笔者都很少能做出来周赛的T4,完全是撞大运偶尔能蒙出来。到了9月之后,时不时的就可以冲击一下第四题。

学习路程

笔者数据结构基础学的还凑活,如果你基本的数据结构掌握的都不太熟练,推荐你看一遍浙江大学陈越姥姥的数据结构课程:https://mooc.study.163.com/course/1000033001

撇开数据结构基础不说,大部分人都关注的是刷题顺序、刷题技巧什么的。所以我把这部分放最开始说:没什么特别好的刷题技巧,大道至简,想做出题来,唯一的办法就是多刷。下面这些场景都是很正常的:

  • 部分题刷好多遍还不会做。
  • 对某一题型进行精练、集中突击之后,在比赛中仍然想不到。
  • 刷了好几百道题偶尔周赛只能做出来2题

在Leetcode,坚韧是最好的品性,发发牢骚可以,不放弃就好。

入门

比较好的刷题顺序在知乎上或者一些帖子都总结的比较好——Hot100、剑指offer什么的,不需要问到底先刷哪些,这些入门的东西都刷掉,反正刷一遍也不够。

入门阶段主要目标是见过各种数据结构的应用和常见题型。遇到一道medium,即便不知道怎么做,看题解也能发现大部分都是自己学过的题型,这个时候大概就入门了。

这个阶段打比赛大概就是:

  • “?这题还能贪心?”
  • “树状数组是什么东西?”
  • “这种解法为什么是对的?”
  • “树上怎么DP?”

进阶

基础入了门,就该针对一些题型进行专门的训练了。根据打比赛或者平时做题时不同的题型进行专项的训练。
笔者这个时候是找的是前辈整理好的不同类型的题单,比如某一天看到了一道阿里笔试题是数位DP,届时笔者还不知道什么是数位DP,然后就集中的找别人总结好了的都是数位DP的题进行训练。

笔者比较喜欢找到题单之后只看题号,然后去刷,不会做了直接看题解,不怎么看题单作者的讲解,这个只是笔者个人习惯,在浏览器方便操作而已。也有人喜欢题单作者连贯的讲解和一致的行文风格,各有所爱,核心是把题做出来,读者可以遵从自己的刷题习惯。

下面是笔者做过的一些题单:

还有一个网络大佬总结的企业面试题出现频率:CodeTop,笔者根据频率在这个网站上做了300多道,后续觉得对比赛帮助不大,后面就不使用这个网站了,笔者可以自行挑选。
还有残酷刷题群的Leetcode每日一题,这和Leetcode官方每日一题不同,这是残酷群群主自己总结的题,题目选择非常的好,读者可以根据里面标记的题目Tag来刷。

多刷

掌握了以上的东西,你的水平应该就已经比笔者高了。笔者达到上面的进度使用了7个月,Leetcode刷题量将近1100道。

然后就是一些比较玄学的题感问题了,就是看到题就知道这道题是什么方法,能很快想到这个题可能的坑点并写代码的时候bug free。因为一类题型并不是做几道就能完全掌握的,需要大量的练习,唯一的办法就是多刷题,保持刷题的手感,坚持打比赛,并能比赛结束后及时的进行补题。

下面是笔者的一个刷题的时间路线:

  • 06/03:500题
  • 06/27:600题
  • 08/05:700题
  • 09/08:800题
  • 09/20:900题
  • 09/26:1000题

最后基本的题型都见过了,同时很多题型也进行过针对性的训练了,应该在比赛的时候就能稳定3题了。这个时候再加大题量,加快一下做题的速度,偶尔再能冒出一次AK,2400分就手到擒来了。

有关不会的题

比赛时遇到不会的题一定要补题!不然这次比赛就白打了。补题之余,如果能再根据不会的题找相似的、同题型的题多做一做,就更好了。
提高竞赛分数的唯一办法就是多做自己不会的题,同时即便这次做了,下次也并不一定会,所以一道题做很多遍是很正常的,下面是笔者某一道题的提交记录:
图片说明
图片说明

因为一道题并不能说做一次就能掌握,所以偶尔回顾自己的错题是很有必要的。笔者使用的是Leetcode自带的收藏夹,每次遇到不会的需要补题的就加入到收藏夹,然后想起来了就去收藏夹集中的补一遍题,目前为止笔者的收藏夹里还躺着三十多道不会做的:

图片说明

当我从收藏夹打开一道题能不看题解完整做出来时,我就会将这道题从收藏夹里删掉。当然,也并不是这次能完整做出来下次就能做出来,这次能完整做出来的题,下次仍然可能想不到,于是有可能一道题可能在错题本里进进出出很多次。

最后,非常重要的一点:很多新人会觉得脑子里还记着之前看过的题解,做题的时候想的都是题解里面的做法,不是自己思考的,这是错误的。能想到题解的做法,就已经是你大脑思考的了,下次做题的时候,你就有可能想到有的题和你做过的题很类似,然后套用之前的做法,这是很正常也是很合理的。这次能想到题解,下次就能完全理解题解,故而自己能思考出越来越多的东西,也就能解决越来越多的题。

残酷刷题群

残酷刷题群是一个很卷的组织,群规请点击,里面有非常多的大佬。核心群规只有2条:

  • 每日打卡,打卡题目由群主确定
  • 连续的3周内必须参加2次周赛

以上2条,加上每次周赛的倒数10%,将要收到惩罚,惩罚为发200块左右的红包。而给你带来的就是每天能在群里看到大佬们对算法的思考和讨论 ,笔者觉得受益匪浅。同时如果你不需要发红包的话,每周还能领几顿晚饭钱的红包,如果你对残酷刷题群感兴趣,可以加我的vx详聊:
图片说明

#互联网求职##学习路径#
全部评论
好帖无人回复😁
1 回复
分享
发布于 2021-11-28 18:49
🐮
1 回复
分享
发布于 2021-12-14 12:42
博乐游戏
校招火热招聘中
官网直投
还需要这样的仪式感吗?
2 回复
分享
发布于 2022-01-18 01:21
好帖,一群牛人
点赞 回复
分享
发布于 2021-11-29 22:20
悟空哥厉害🤩
点赞 回复
分享
发布于 2021-11-30 23:04
大佬23届的😰?好强
点赞 回复
分享
发布于 2021-12-01 07:49
牛🐮
点赞 回复
分享
发布于 2021-12-10 11:59
太厉害了
点赞 回复
分享
发布于 2021-12-13 18:10
ads infra诶,大佬Java转cpp了吗
点赞 回复
分享
发布于 2021-12-14 12:59
大佬为撒要转go呀
点赞 回复
分享
发布于 2021-12-21 19:00
牛客的oj也可以试试啊!🤣ACM模式独一无二啊
点赞 回复
分享
发布于 2021-12-23 10:55
太强了,我才艰难地做过七十多题,向你学习
点赞 回复
分享
发布于 2022-01-13 13:03
太强了
点赞 回复
分享
发布于 2022-01-14 13:27
悟空哥? 咋俩在一个刷题群
点赞 回复
分享
发布于 2022-01-16 15:27

相关推荐

80 235 评论
分享
牛客网
牛客企业服务