Leetcode备考计划

Last renew: May 14, 2022 pm

背景:代码基础为学校授课水平,刷题量近乎为0。

目标:2023年招聘时能够达到通过外企代码要求水平。

时间长度:2022年2月 - 2023年3月

“归纳流”方法论概要

总结

  1. 始终保持匀速前进,即不松懈倦怠,亦不急于求成。
  2. 定时归纳总结,按类训练。
  3. 按照记忆高频率高效复习
  4. 拥抱孤独,过滤杂音,放平心态。

1 始终保持匀速前进

对于lc来说题海流不可取,一天刷20道也并不会让你再次面对面试/OA的时候能够有思路熟练的解决,保证刷题质量是关键,这一点得到了多位上岸前辈的确认。当然这并不代表刷100道就能过了…总而言之是牢记追求的不是刷了一千道一万道,而是通过OA和面试。

匀速前进也是最关键的事情。Greedy在这件事上不可取,动态规划追求最好的整体效果才是关键,目光要放长远。每个人每天的精力是有限且平均的。今天的事超标了,看似赚了,实际上是在透支明天自己的精力,透支一次就会打乱一次结构,整体来看对于大目标的实现毫无疑问是副作用。这一招只适合在 最后冲刺前/ ddl前/ final前 的终结技。一周一小停,一月一大停非常之效率低。

目前看上去对我个人来说,工作日2道+复习,休息日4道+复习可能是极限了。

注1:归纳法的参考结构: 早上两题,写完休息;下午两题,复习早上的,写完休息。晚上复习归纳一整天做的题。

注2:自己的时间规划还可以进行调整,实习面试比较多,确实有点难办。

注3:暂定时间规划如下:

workday:早起床1;下午1+复习早上; 晚复习全天

weekend:早起床2;下午2+复习早上;晚复习全天+周赛

2 定时归纳总结,按类训练

尝试在同类事物中挖掘普遍规律,并利用该规律高效地解决更多同类问题。

刷题一定要同类型一起刷,在进行了大量针对性的同类型训练后,隐藏在事物深层的普遍规律往往会自然而然浮出表面。这时候进行总结归纳是最好的正反馈。

注:定期归纳的参考结构:一段时间内(5-7天)只做该类型题目,结合其他高质量题解以及labuladong/代码随想录等,加上自身的见解总结出自己的框架。

3 高频率高效复习

为了将做题的记忆转化为长期记忆,频繁且有效的重复刺激即可。所以复习旧题的重要性要远大于做新题。

每一区段刷少量题+复习上一区段

把自己想象成一个正在运行机器学习的机器。只会背诵训练集的劣质模型没有意义,尝试理解和归纳你手中的“数据”。

4 拥抱孤独,过滤杂音

减少无效信息的获取。

减少无意义社交与社交媒体的使用。

倾听内心的声音。

你不需要任何庇护,倘若能够利用好资源,不断强大自身的毅力和内心,再配合正确的方法,你已具备进入谷歌的一切潜质。

长期的保持一个节奏,贯彻一个方案,不因取得的阶段性成就而大喜,亦不因遭受阶段性挫折而大悲,当进入这个状态之后,那么离你的目标就真的不再遥远了。

高考我惨败,修考小负,但具有了堂堂正正跟他们站在同一个擂台的入场券。

这第三场,让我们来看看我这个混凝土出身的双非小子有没有办法跟你们站在同一个高度吧。

时间规划记录

2022年

2月 - 3月中旬:方向走错,刷题量 < 50,AtCoder AB秒C做不出来水平

3月下旬 - 5月:想明白要全力刷题了,开学+搬家+打疫苗事情太多,刷题量80

5月:计划 完成所有tag一轮,包括dp和greedy、backtracking之类的,同时每日一题完成。注:按照归纳流的方法,除去满课的周二之外争取工作日每天刷两道+复习,周末4道+复习+周赛。

6月:准备Amazon实习,AmazonHot 100+面经+题库

7月:同上,刷题内容未定+final

8月-9月:有实习的日子同上,没实习的日子按休息日进行。内容暂定是tag复习+剑指之类的

10月:Nintendo实习选考,准备乐天正选考

2023年

2月-3月 旧题巩固,tag三轮,每日一题,面经+题库

附录

主要Tag清单:

  • 排序(merge,快排,快选)
  • 二分
  • 前缀和
  • 差分(一维和二维)
  • 双指针(滑动窗口)
  • 区间合并
  • 单调栈
  • 单调队列
  • 并查集
  • KMP
  • 哈希表(set/map)红黑树
  • 图论(最短路径、生成树)
  • DP、Greedy、Backtracking
  • 数论