LC200 + 代码随想录一刷小结:含刷题方法论和资料推荐

51

4月底开始刷题,到今天差不多整三个月,不算中途因为逃离上海摆烂一个月,差不多日均3道题。哈哈哈这么看速度一般般呀,但我自己还是比较满意的。

关于刷题的小感慨

最近参加了一个刷题训练营,每天群主会发一道题,不免有群友会说,没有思路/看了题解才恍然大户/我怎么这么笨啊…

除去情绪的部分之外,对普通人而言,解决办法只有一个:多做题,再延展一下:看题解,记录下来,并重复练习。我觉得可能各位做题家都有点懂这个感觉,重复的题做多了,有时候能有一种”通了“的感觉。

当然,如果只是疯狂做题,不记录也不总结,可能还是有些过于自信了哈。普通人还是要对自己的记忆能力有点认知。

目前在用的方法

做题流程

看到一道新题:

  • 很自信,觉得自己会:写就得了。不过现在的习惯不是特别好,有点习惯用提交检验自己的代码,而不是先自己自查。
  • 有点思路,但是不是很确定 / 题目懂了,但是不知从何做起:先想最简单的情况,然后慢慢补充慢慢丰富。
    • 如果花了很久也没想出来就看题解:看看自己的思路对不对,如果对的话卡在哪里没想出来。
    • 如果觉得自己解的太暴力或者太麻烦的话:看看有没有别的效率更高的解法。
    • 说到这里,突然想到,推荐大家用中文版力扣,据说评论区和题解的质量已经比英文版好很多了。
  • 读不懂题:看看英文,看看评论区。

这道题如果有记录的必要的话(除了一次写完全部通过那种),会按照格式记录到笔记里。

对于看题解,下面这段说的特别好,分享给大家。

作为一条咸鱼,在刷透300题之前,不要试图靠自己平庸的大脑跟任何题目死磕。毕竟很多算法问题的最优解,放在几十或上百年前也都是人类知识边缘的数学问题,当年大师们也花了不少功夫才研究出来发论文的,如果被我等弱鸡几十分钟就凭空搞定,大师们不要面子的吗?

所以,对于初学者,一道题十分钟没有想法就不要开脑洞了,而应该直接去寻找标准答案,以最快的速度爬到前人的肩膀上。

https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=678970&page=1&authorid=682747

笔记格式

主体模板是按照这个来,这个的模板优点是可以自动安排复习时间,可以单独拎出来或者以日历形式展示

https://www.notion.so/Spaced-Repetition-Battleground-c1f738213e8b4bee871999474bb17bf0

在刷题的过程中看到了这个帖子(上面也引用过),进行了一些修改,自己用着很顺手

  • 增加了题目分类
    • (还是来自这个帖子)分类的作用:
      • <1> 必背,大约20~30道,都是各类型题目的典型模板题,基本需要刷十几遍,做到迷迷糊糊半昏迷状态也能熟练默写的肌肉记忆状态。
      • <2> 核心,大约100~150道,主要是各种高频题和经典题,基本在5~8遍以上,需要做到最优解,medium难度10分钟以内,hard难度15分钟以内,无错一遍过,同时要能解释清楚思路。另外有多重解法的也要掌握,知道不同解法间的优缺点和trade off原因。
      • <3> 重点,大约200~300道,核心题之外的高频题,基本在5遍左右。这样遇到原题或者类似题的时候,基本思路、逻辑不会错。能不能临场完全bug free要看基本功和运气。
      • <4> 普通,上述题之外所有你刷过的题。基本上做过一两遍,有个思路,临场遇见了不会慌。
    • Type就很简单了,就算这道题的解法
  • 增加了题目录入模板
    • 举个例子
发现tip不应该加s

资料

最最最有用的:代码随想录

https://programmercarl.com/

初学一定一定一定要看这个,按照这个顺序刷,中途偶尔有超一点纲的内容,跳过就行,刷的差不多了然后再去刷其他的内容。

为啥这么推荐,因为真的是摆开揉碎给你(我)讲!绝大多数的题目都是把读者当个小白,没有跳步骤,讲的很清楚。有些题目如果看别人的内容,都是精简版的代码或者回答,这里就会按照统一的方法分析,写出代码,再给出精简版的代码。

偶尔有文字看不懂的,去看看题解里的视频讲解,或者B站视频讲解,也就能明白了。

缺点:不是特别全,图论、排序等内容在补充题目里,但是目前的内容刷到250题也够够了!

其他的内容:

胖头龙的咸鱼刷题笔记-算法篇:已经是我心目中神贴的地步了,方法论很厉害,题目list也会参考。

https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=678970&page=1&authorid=682747

力扣加加:有专题的总结,这点做得比代码随想录好,但是不够通俗,适合学完代码随想录的某个部分,再来看这里的专题总结。

https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings

程序厨:学排序的时候找到的网站,难得找到一个看得懂的哈哈哈。

https://www.chengxuchu.com/#/

再然后就是些题目列表,就不列了。

后续计划

题目还得刷:

1.5轮:代码随想录附加题目+复习;

2轮:复习+胖头龙标出的必备+核心;

3轮:复习+再说…

过程中注意:可以自己叨逼叨;写完先自己检查;提前考虑边界情况和特殊情况。总结多一点!复习多一点!(开始过年前的许愿了)

简历

我要开始写简历了!

前一阵被讲说,我目前的简历,改上天了也没人看(ta还没看我的简历就这么说┭┮﹏┭┮)(虽然后面还是给我提了很多很宝贵的建议)。但当时难免有一点沮丧,难过地打开了力扣刷了5道题。

简历主要分为两个部分:

  • 项目(从0开始的开发项目)
  • 现有经历(增强数据方向)

心里压力挺大的,大家写过简历的都懂,中文写简历都是苦手了,更别提要写成换个方向的英文简历。

希望自己不要完美主义,尽早开工!先写出一个版本,就算很垃圾也不要紧,然后找人改~

最后一点碎碎念

最开始接触算法是初中时候,当时真的学出了心理阴影:课上完全搞不懂各种指针,背包什么在讲什么。尤其当我头昏脑胀的时候看到小伙伴搞得游刃有余(后来他上了清华),当时不禁感叹,智商真的是有壁啊,以及,计算机好难好难好难啊!

所以高中毕业的时候,虽然学的是理科,根本没把计算机专业放在考虑范围内(虽然这两年真的有点遗憾当时没把报考学校滑档政策搞清楚,不然也不会最后去了法律系。)现在也可能大脑更成熟了,也可能是自己更会和自己和解了,感觉算法完全没有那么难嘛!(感觉说出一句了不得的话)

Anyway,虽然浪费了7年(???),我现在还是在一条我自己更认可的路上啦。

好啦,大概就是这些。

总是在想着可以把我(微不足道的+并未成功的)经验分享给大家,不知道可以分享什么,写的过程发现还是有一些可以分享的事情,很开心!

感谢你看到这里!如果有什么我没写清楚的地方欢迎用各种能找到我的方式和我说!

Visits: 1582

5 thoughts on “LC200 + 代码随想录一刷小结:含刷题方法论和资料推荐

  1. 太感谢你的分享啦!!!
    想问一下 notion 那个分类
    必背 核心什么的 是怎么分类的呀
    我没有在代码随想录找到
    是自己定哪个是必背吗

    1. 对的,理论上可以自己定义哪个是必背之类的。我这里是根据胖头龙那个帖子里,每个类型有放什么题是什么类型。

回复 林仲柚 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注