算法刷题 45 天总结

算法和数据结构的学习从来不是一蹴而就,中间要有很多思考,很多练习,很多积累,才能真正掌握。

我在2个月前,与550位星友一起开启刷题练习、分析思考和总结,现在已经来到Day45.

这是我的知识星球的首页,过去2个月,累积打卡主题数已经来到3110+,各项数据都超越99%的星球:

算法刷题 45 天总结_第1张图片

这两天,特意总结过去44天的算法刷题笔记为pdf,整个 pdf 150 页,共计3万字。加入星球领取此pdf.

pdf 目录

算法刷题 45 天总结_第2张图片 算法刷题 45 天总结_第3张图片 算法刷题 45 天总结_第4张图片 算法刷题 45 天总结_第5张图片

pdf 截图

算法刷题 45 天总结_第6张图片 算法刷题 45 天总结_第7张图片 算法刷题 45 天总结_第8张图片 算法刷题 45 天总结_第9张图片

有朋友跟我聊天说,自己刷了很多题,但最后还是会:看到答案一时爽,自己去做很不爽,面试时脑海空白就凉凉。

这是为什么呢?拿开发一个系统的小模块为例,因为业务逻辑居多,所以只要想清楚业务规则后,只要语言掌握的熟练些,从头到尾都会写的很顺溜。并且,写业务系统的逻辑,我们可能不会太留意每个函数的时间和空间复杂度,开发几年后,觉得没啥意思,自己也没啥提高。

但是,练习算法思维就完全不一样。每一道算法题背后都可能涉及一些计算机思维、数学归纳分析等等。只有追求极致,才可能写出满足时间和空间复杂度要求的解,因此练习leetcode上的题目做起来就不那么顺,同一道题,O(n^2)的解容易想,O(n)的解就不那么容易想;O(n)空间的解好想,O(1)空间的解就不容易想。

比如,找出长度为n的列表中重复值和错误值,已知列表取值范围:[1,n],有的朋友一想到就是使用set去重,或者排序后相邻的就是重复元素。这些思路都能得到结果,但不是最好的求解方法,因为完全没考虑已知条件列表取值范围:[1,n]如果平时不去练习和总结,就写不出这种特殊数组下的特定算法。

有的朋友会觉得这没啥用,这类数值结构工作中用不到,这种认识就有些莽撞了。那些速度快占用内存少的高性能app,一定会追求极致,使用最匹配特定场景的特定算法和数据结构。

有了更高的目标要求后,再去努力达成,结果就是程序员level不断提升,相应的荣誉和待遇就会随之而来。

总之,做算法练习题,找到答案从来都不是最重要的,网上答案有很多种。关键是,如何找到、分析出答案,并挖掘出背后的基本原理。而过去这些天,我们一直贯彻执行:如何分析题目更重要的方针。

后续安排

这个算法刷题计划会坚持全年365天,而上面45天相信已经加入到星球里的朋友已经学到很多,因此可以预见这个星球的价值,价格只有几十,但是学到的算法和数据结构知识却是弥补珍贵。加入星球领取上面3万字,150页 pdf

算法刷题 45 天总结_第10张图片 长按二维码,查看算法刷题日记星球

有些朋友提到算法和数据结构,都知道它们是程序员的灵魂,都知道非常重要。但是总觉得这东西有些难,不想去碰不想去学。

不过,从另一个角度去想,你觉得不那么难学习的知识,别人很可能也会觉得不那么难学,最后大家都能学会。这样的话,不管考试还是毕业面临找工作,你的优势又会体现在哪里呢?

其实,只要我们一天拿出二三十分钟,去学习别人不愿意学的东西。坚持下来,一年后就会有一个大的改变。这个有多难吗?或许当稳下心来,下定决心要学会时,大多数技能和知识都能被我们掌握。

感恩遇见,感恩你我曾经的付出,还有那一束念念不忘后灵光乍现的灵感之光。

你可能感兴趣的:(算法刷题 45 天总结)