姐妹们,兄弟们!最近是不是被算法题虐到怀疑人生?明明感觉代码敲得很溜,一遇到算法就脑壳疼!别怕,今天就来跟大家唠唠,算法这玩意儿,到底要怎么学才能不秃头!
1. 夯实基础,别想着一蹴而就
说真的,学习算法就像追剧,你总得先把第一季剧情搞清楚,才能接着往下看吧?别一上来就抱着《算法导论》啃,先从基础数据结构和算法开始,比如数组、链表、栈、队列,排序、查找等等。推荐大家可以看看程杰的《大话数据结构》或者王道考研的《数据结构》,讲得通俗易懂,非常适合入门。
2. 刷题!刷题!刷题!重要的事情说三遍
学习算法,只看不练假把式!刷题才是王道!LeetCode、牛客网都是不错的选择。刚开始刷题,建议按照题型来,比如先集中刷数组相关的题目,再刷链表相关的题目,这样更有针对性,也更容易找到感觉。
3. 别光顾着刷,总结思考更重要
刷题不是目的,重要的是通过刷题来巩固知识点,提升解题思路。每次刷完一道题,别光顾着看答案,要想想这道题考察了哪些知识点?用了什么算法思想?有没有更优的解法?可以把自己的思考过程记录下来,形成自己的解题笔记。
4. 找到适合自己的学习方法
每个人的学习方法都不一样,找到适合自己的才是最重要的。有些人喜欢看书,有些人喜欢看视频,有些人喜欢刷题,找到自己最舒服的学习方式,才能坚持下去。
5. 别闭门造车,多交流多讨论
学习算法的过程中,难免会遇到各种各样的问题。这时候,不要一个人闷头苦想,可以找找志同道合的小伙伴一起学习,互相交流解题思路,或者去一些技术论坛、社区提问,寻求帮助。
推荐一些学习资源,拿走不谢!
书籍
《算法图解》:非常适合入门,用图解的方式讲解算法,通俗易懂。
《算法(第四版)》:Java语言描述,内容非常全面,适合有一定基础的同学。
《剑指Offer:名企面试官精讲典型编程题》:专门针对面试的算法书籍,包含了很多经典的面试题。
网站
LeetCode:全球最大的技术面试刷题平台,题目丰富,分类详细。
牛客网:国内知名的IT求职备考平台,提供海量IT企业招聘信息、技术面试经验分享、在线编程练习等服务。
视频
小甲鱼的数据结构与算法:B站上很火的算法入门视频教程,讲得生动有趣。
清华大学邓俊辉老师的数据结构课程:公开课,内容非常经典,适合有一定基础的同学。
最后,分享一些学习算法的小tips:
不要死记硬背代码,要理解算法的思想。
不要害怕犯错,错了才能找到自己的不足。
不要轻易放弃,坚持下去才能看到胜利的曙光。
学习算法是一个漫长的过程,需要不断地积累和沉淀。相信只要你坚持下去,就一定能够攻克算法这座大山!加油!