代码随想录算法训练营历经两个月的总结

一刷代码随想录心得:

个人介绍:《数据结构和算法C语言版》严蔚敏,这本书我是粗略看了一遍,但是不深入,属于仅是了解数据结构的特点的程度。其次有一定的语言基础,但是有一部分的知识点还不够熟悉,导致刷题的时候,像哈希表,栈和队列以及需要集合的部分题目,我都要先回顾语言的知识点后才能继续做。在刷代码随想录之前,算法没怎么接触过,最多也只是了解了一下排序的相关算法,还没有具体刷过题目。总的来说,对数据结构有一定了解且对刷题所要用的语言有一定的熟悉程度,在这个条件下,目标是初步构建算法体系或者加深算法认识的话,刷代码随想录是没有问题的。

目前一刷所涉及的目录:

数组,链表,哈希表,字符串,栈和队列,树,回溯算法,贪心算法,动态规划,单调栈

心理路程:

1.对于要求,当天的事情当天做,按照我一刷的路程来看,看视频+看文章讲解+看题目理解+自己做题,我自己的做的话也大概要3h小时左右。

2.对于题目看法,一刷自己做题的时候如果不能直接解的话,也没关系,重点是你从题目中了解到了什么,学会了什么,还有什么是不会的?拿数组打个比方,首先就是我了解到了什么是数组,数组的特点。学会了使用双指针来提高算法的效率,把O(n^2)降低到O(n)。还了解到了算法效率的计算,虽然这个也只是大概的了解(哈哈)。滑动窗口现在也忘了差不多了,得回去复习复习。像螺旋矩阵II,读题目并且把题目所给的信息进行分析,分析之后还要结合一定的现实常识来解决,对于我来说,这题目综合性会很强,这题目到现在我也只是知道整体的思路是怎么样,具体的细节还是差得很远。

3.对于debug,我自己的有些题目是复制到IDEA上,打断点来做。对于我来说,打断点debug这个过程来说,是很耗时间很耗精力的事情,但是回报也是很丰富。首先debug能够找出你自己脑测测不到的东西,是吧?其次,代码自己打断点走一遍,对于掌控自己代码的程度也很有帮助,感觉成为了自己代码的主人,Control它。

4.对于难题,一刷我就直接跳了,看看这道难题需要什么知识点,然后把卡哥里面的演示代码在LeetCode走一遍我就算了,我承认自己有些畏难,但是一刷我觉得还是放一放比较好,后面再来挑战。

5.对于心态,这两个月以来,我也不是每天都准时去做,最离谱的时候是累计了一个星期的题目。因为一开始总想着尽善尽美,想着一天之内弄懂弄深入以及再扩展。现实却狠狠地扇了我一巴掌,好吧,自己确实没有这个实力,得一口一口的吃饭。尽管后面也补上了,但是还是觉得差点意思,因为比较紧赶紧忙的感觉,质量也稍微差了一些。

反思:

1.饭要一口一口地吃,一步登天是痴心妄想,感觉还是得有慢慢来的心态才是最快的路径。

2.做事情的时候,要有大概的目标,这个目标不宜太高,太高容易有挫折心理,随即就很容易放弃。太低,没有挑战性,也就不当作回事了。尽力刚刚能到达,然后比较有成就感这个程度就很不错。像我对于一刷代码随想录的期待就是:每天花3h的时间在算法这里,然后能够看一遍视频,看一遍文章,看一遍题目,做一遍题目,并且能够每天达到这个要求,我觉得就是非常不错了。不过话说回来,自己还是没有达到这个要求,尽管按要求一刷了代码随想录,但是质量上却没跟上,具体体现在有过几次累积了几天的题目,后面急急忙忙才追上去的。这里重点:一日事一日毕,当然这里是基于合理的安排,卡哥每天题目的数量要求就很不错,3h是能够看一遍视频看一遍文章讲解加上自己手敲代码。

3.一刷过后,语言基础还是不太牢固,debug还是太懒了,全看脑测,后续打算把一刷的代码随想录的题目都debug一遍,加深对代码的理解。

总结:

1.一刷代码随想录,能够有个很明显的体验就是对代码的掌控能力加强了,对于自己不熟悉的题目,如果能够坚持自己debug,打断点走一遍代码的流程,相信你一定会有所收获。

2.对于之前没有接触过算法的人来说(我自己就是),一刷过后你会有一个整体的框架,而这个框架也会带给你自己刷算法一定的勇气,当然如果要挑战高阶算法的话,那还得多方面去成长。

3.还是老话,实践出真知,做就完事了!

二刷期待:

1.能够在3h内,先做题目,再看视频,再看文章,能够每天都坚持下去。

2.对于不懂的题目一定要自己debug一遍,不能再偷懒了。

3.对于一些一刷的时候觉得难的题目也要去尝试挑战一下

4.把之前写过的blog再重新完善一遍,一些需要图解的也稍微弄一下。(当然这个属于长期工程,属于加分项哈哈)

你可能感兴趣的:(算法)