学算法,这几个"神"站,你一定需要
每一个学习计算机和从事计算机的,最痛恨的就是学习数据结构和算法,一学就瞌睡,实在让人头疼…
其实学习算法也是讲究方法的,虽然有难度,但是肯下功夫,总会有收获。
我们应该坚持五项原则:
刷题要趁早。尤其是还在上学的,有大好的时光钻研,算法是进入大厂门槛,别到时候毕业了,刷的不错的伙伴已经找到不错的工作,你还在投简历。等人家数第一桶金的时候,你还在吃泡面,混,迟早要还。
干啥事都得有目标,必须明确方向,不能盲目干,比如先只刷入门的算法,多刷几次,之后转战中级,不要这一棒子那一棒子,会很乱的。
找同伙,一定要找同伙,不要相信自己的控制力,要认清自己没那么强,找个一起的互相督促,一定非常有帮助。
刷完就了事了?不可能,一定要实践应用,多模拟练习面试,或者去真正去面试,提升实践性。
90%以上的人都不能凭空解决问题,不会不要紧,放下倔强去学习,背答案,总结思路,从小到大,没有什么知识是凭空在你脑子里冒出来的,都是学习来的,不断应用,才能不断创新。
除了上面的原则,算法学习网站也成为我们的好帮手,网站和五项原则,相辅相成,提高效率。
这种网站一大堆,只用几个精致的就可以了。题差不多,解题也差不多。
当然刷题不能乱刷,你要知道刷题要干嘛,是找工作面试、加强学习提升职业竞争力,还是参加程序设计竞赛,或者追求人生意义?
当初我是为找工作面试而学算法的,开始的时候很多都蒙,智力不够刷题来凑,还记着当初靠背诵记住了一些。
今天把私藏的资源分享出来,让大家群shuang
LeetCode——https://leetcode-cn.com/
Leetcode(力扣),基本人人推荐,算是人尽皆知,号称大厂筛码工,模拟大厂面试。地址是中文社区,收费的站点。
LintCode——https://www.lintcode.com/problem/
除了LeetCode还有LintCode(领扣),它的题目分类明确,难度等级分明,阶梯型训练,方便你我他。题目都差不多,和力扣的区别我记着好像是领扣没有社区。按月付费每月100多,感觉有些小贵。
Codewars——https://www.codewars.com/
还有Codewars,这也是一个很有意思的平台,题目也贴合实际工作和生活,有一定的代入感,题目还和游戏结合,简单的题让你玩着玩着就学会了,有时候写了好多行代码解决的问题,发现大神几行就搞定,感觉智商被碾压,怀疑自己有没有脑子。不过看欣赏人家的code,扩展思路特别强,
支持基本所有语言。全程是英语,读起来确实有些生涩。
其他
都是代码?比较抽象所以理解苦难?不要急,还有可视化动画效果帮助你。
Data Structure Visualizations
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
Algorithm Visualizer
https://algorithm-visualizer.org/
算法效果一目了然,配合代码别提多专业了。具象化教学还能加强记忆。
除了这俩还有个和Leeetcode搭配的开源项目。该项目目前5万多star,作者真的超级棒,还有独立博客详细讲解。
https://github.com/MisterBooo/LeetCodeAnimation