每一个学习计算机和从事计算机的,最痛恨的就是学习数据结构和算法,一学就瞌睡,实在让人头疼…
其实学习算法也是讲究方法的,虽然有难度,但是肯下功夫,总会有收获。
我们应该坚持五项原则:
除了上面的原则,算法学习网站也成为我们的好帮手,网站和五项原则,相辅相成,提高效率。
这种网站一大堆,只用几个精致的就可以了。题差不多,解题也差不多。
当然刷题不能乱刷,你要知道刷题要干嘛,是找工作面试、加强学习提升职业竞争力,还是参加程序设计竞赛,或者追求人生意义?
当初我是为找工作面试而学算法的,开始的时候很多都蒙,智力不够刷题来凑,还记着当初靠背诵记住了一些。
今天把私藏的资源分享出来,让大家群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