本文,我们将“数据结构与算法”,直接简称“算法”,更加简洁。实际上,数据结构、算法,是两个相关性很高的不同的知识点。
当胖友准备开始准备算法相关的面试,就要做好心理准备,这可能是比想象中痛苦的过程,并且时间还不短,少则三个月,半年也是比较正常的时间。
不过艿艿觉得,随着现在互联网越来越朝着精英化发展,对学历对履历的要求越来越高,大公司甚至部分小公司,也愈发注重基础技术。而基础技术,无非考核两点,编程语言和算法。所以,这个过程,可能真的是我们必须去体验的。
不过换过来思考,算法不会像我们学习的框架或者中间件,有过时一说。也就说,学习一次,终身受众。并且,相比大多数 CRUD 的无脑,撩撩算法,也是一种“放松”,哈哈哈哈。
如何学习?
可能很多同学,一说到算法面试的准备,就想到的是去 LeetCode 去刷题?!但是,这个真的正确么?一半一半。相信绝大多数胖友,在大学里是没有认真学习算法,又或者在工作中,因为应用较少,所以基本忘记的也差不多了。
那么,就必须重新学习下算法!请不要上来就去 LeetCode 去刷题,简直是花样作死。算法准备,是一场持久战,需要系统的去准备。那么,怎么进行学习呢?
讲真,市面上大多数算法,无论是书籍,还是视频,真的真的真的是看不下去啊看不下去。有握爪的胖友么?最近,刷了王争的 《数据结构与算法之美》 ,哈哈哈,还很认真的做了笔记。如下图:
艿艿,利益无关,主要是自己看了,真的觉得不错,足够适合我们准备算法面试。如果想要挑战,请去看 《数据结构与算法分析:Java语言描述》 等等。呵,等着胖友回来说,“奶奶,我错了~~~?” 哈哈哈哈。
但是,还是要打个预防针,即使艿艿推荐了 《数据结构与算法之美》 这个教程,也并不意味着它很简单。它还是非常难的,特别是红黑树!简直是魔鬼啊!!!仅仅是说,它足够能够让艿艿看完,并且蛮多时候在地铁上就能耐心看完。嘻嘻,不过呢,我有 2 年 ACM 集训的经验,可能底子又比大多数同学好点。对于 《数据结构与算法分析:Java语言描述》 来说,在地铁上,真的是分分钟趟睡,又或是拿出手机,刷刷刷。
胖友,要拿出勇气!如果碰到困难的,就退缩,就不要准备算法面试,不要想着去大公司。想啥呢!对吧。
如何练习?
三分学,七分练。用在算法面试的准备中,非常适合。哈哈哈,在算法面试的准备中,真正占用时间的是,不是算法的学习,而是在算法的练习中。这个过程,比学习算法会更加痛苦和难受。但是,也只有经历了练习的过程,学习算法,才可能真正变成学会算法。
就好比说,我们学习了数学的某个知识点,直接去考试,绝大数情况下,可能是直接懵逼。同理,切换到真正去公司面试时,考到具体的算法题目,肯定也是类似的情况。所以,一定要勤加练习,死磕练习,玩命练习。
那么,如何练习算法呢?答案很简单,去刷 LeetCode 。比较幸运的是,目前 LeetCode 有国内的版本,可以访问 https://leetcode-cn.com/ 进行愉快的玩耍,照顾我们这些英语不好的孩子。LeetCode 本土化的名字,真的是堪比麦丹劳的“金拱门”,竟然见“力扣”,哈哈哈哈。
不过,怎么刷 LeetCode 呢?毕竟 LeetCode 已经进入千题时代,想要全部做完,肯定是不太现实,即使时间允许,我们的实力也不允许,哈哈哈哈。推荐看看 《花花酱 LeetCode进入千题时代后该如何刷题?》 。可以开倍速播放,比较核心的,就是下面这张图:
即使如此,可能对于基础相对薄弱的,或者之前没啥刷题经验的胖友,直接上来就刷 LeetCode 题目,特别是一些困难级别的题目,可能简直是进了地狱模式的游戏难度,挫败感 120 分的强烈。那么怎么办呢?马化腾爸爸,很早就告诉了我们残酷的真理,“不充钱,怎么变强!”。所以,我们可能需要看一些针对 LeetCode 出的刷题面试视频课程:
左神 《牛客算法系列》
貌似不是针对 LeetCode 课程的,主要是牛逼,所以放这里。
小象学院 《面试算法 LeetCode 刷题班》
拉钩网和 LeetCode 联合处的课程。
艿艿的话,自己刷的是,覃超 《算法面试通关 40 讲》 。并且,还是老样子,认真做了笔记,如下图:
题外话,因为艿艿自己不准备面试,所以一般是不会去看算法。但是考虑到,这篇文章,蛮多人催的,所以自己又看了蛮多的资料的。就冲这份良心,我都给自己打 120 分。
另外,市面上也有一些讲面试算法的书,这里也补充整理下,直接放下面:
左神 《程序员代码面试指南:IT 名企算法与数据结构题目最优解(第二版)》
豆瓣评分 8.9 分,以面试视角的算法书。
豆瓣评分 9.1 分,也讲了面试中的算法,同时也介绍了其它的。
豆瓣评分 8.3 分,3000 多人评价,还是一本面试相关的算法书籍。主要是,大多数胖友学习算法是为了解决面试,所以就多推荐一点啦。
考虑到大多数胖友,都是在职为主的,可以直接考虑 《算法面试通关 40 讲》 。主要原因,还是因为我目前暂时只看完了这套教程。后续,我也抽时间看看,左神和小象学院的视频,良心如我。
哪些题目?
正如我们在 《花花酱 LeetCode进入千题时代后该如何刷题?》 看到的视频,我们需要每个类型的 10-20 题,所以我们需要知道,算法面试,主要有哪些题型,每个题型刷哪些题目。








还没有评论,来说两句吧...