本文是记录系统学习算法的一个过程记录。也算是围绕我的计划 “80天刷题100道” 的一个执行过程的心路历程的记录吧。
立了一个flag
为什么要立这个Flag 呢,说白了还是觉得计算机这个行业已经卷到了一定的程度,而且从各个方面看到的信息,现在面试问算法已经是一个门槛。不希望自己因为算法而受到特别大的限制。另一方面也觉得算法无非也就这些东西,虽然它需要一定的时间,但是掌握了内核,应该也是一件一劳永逸的事情(当然还是需要复习的)。至少可以应对80% 的常见题目。 所以决定把功夫用在平时,全力准备一段时间。为了防止自己半途而废,给自己立了一个flag 并公示了出来。
其实当时立flag 的时候,还没想好是要具体跟着LeetCode 的Top 榜刷题还是要找个 左神的视频 系统走一遍 亦或这是看 《算法小抄》来。只是想先做起来吧。然后过程中各种方式试了一遍。 至于用哪种方式,我都分析了一下 试了试:
怎么刷
方案1 刷LeetCode 的Top 榜
优点:可以说是高频热点题目。我心想会了这些题,至少用最少的精力时间掌握了最高频的题,可以说事半功倍.
缺点:思考时间长,且没有通用方法掌握一系列的题。 我虽然之前有接触过一些题目,也对各个数据结构有一些了解。但是面对大部分的题都还是需要自己思考5-30分钟,甚至是直接看解题思路,都需要自己消化半天,且不知道思路是如何出来的。一道题要用大概1个小时的时间来做并消化。
在我看来,算法是有一定的思路和套路可循的,脑子里应该现有一些思路或模型才好。所以在前期自己大部分的花费的时间是没有太大意义的。与其花这些时间来研究一道题,是不是可以更好的 用一个小时来进行输入的学习。
方案二 看《算法小抄》
这个在我之前零碎的刷递归的时候,其实给了我一些帮助。作者有总结一些常见的算法模板和题型,这不就是站在巨人的肩膀上么?这不就是我要的么?
缺点呢: 作者总结了很多的算法套路 我觉得很受用。但是感觉自己还是没有能体会到算法的内核。
方案三 看左神的算法视频
这个是之前被大家吹爆的视频。从对老师的称呼“左神”就可以略知一二。 左老师的视频讲的很系统,也由浅入深,讲的很不错。很硬核。 但是我之前一直是比较抗拒的,毕竟时间有限,一节课要2个小时以上。。
不过我试着听了听左老师的视频,有种觉得突然被开窍了一样。很多题目原来是可以这样理解的,原来是可以这么清晰的思考的。然后果断决定 时间长点就长点吧,塌下心来走一遍。于是我大概每周要用7-10个小时的时间来跟着左老师的视频 边学习 边练习。 可以说前半部分执行的还是比较好的:
除了进度上,也对自己的收获很满意。觉得新理解了很多题型,更有了一种觉得自己可以触类旁通的感觉。至少做起之前的题,感觉是容易了一些。当然后面的道路也还挺远的
心似平原走马,易放难收
当过了40天的时候,正好刷题50%,以致于后边可能状态有点飘了,觉得后边完成目标问题不大,可以稍微放松一下了。可是等稍微一放松,转眼就来到了6月,再一转眼~距离我的deadline 还有10天。。。
冲刺 or 摆烂?
最近几天一直在 “我要冲刺” 和 “我要摆烂” 之间动摇。
我分析了一下完成目标的可能性。
按照之前的进度,每周大概看2-3集视频。加上练习的时间,大概一周要投入7-10个小时 来完成5-10道题。 而现在如果按照每天要完成4道题来说,我 基本 是不可能完成的。
但是好在哪里呢,我还有2集就看完了动态规划部分。也就是说,截止到现在,我已经把基本的数据结构和贪心 和 动态规划基本走完了。。。
那么,怎么样能让我在6月底的时候能完成flag呢
毕竟我的目标里当时是没有规定刷哪些题的吧 毕竟我的目标里也不是说要边看视频边刷题吧 毕竟我也是需要时常去回顾一下之前的类型吧 毕竟如果现在不看视频的话我还是有希望能达标的吧
所以我决定了,不继续看视频了,动态规划什么的 等计划结束了再输出笔记吧。
从下周开始摆烂,降低对自己的要求,不继续输入新的内容。开始从easy题开始,专心刷50道题。如果能做成,其实我也挺欣慰的,至少学习成果也巩固住了。。。
另外:最近对二八定律 有了又一次的感悟,回过头来看,自己看视频的这个时间本来是可以更高效的利用的。至少可以节省一半的时间来。这个后续再总结吧。
用摆烂的方式,先把kpi搞定。
|