无它,多刷八股文!
你好呀,我是歪歪。
昨天在知乎上刷到一个热门问题:
程序员需要达到什么水平才能顺利拿到 20k 无压力?
其中一个最热门的回答是:
“其实,无论你是前端还是后端、想进大厂还是拿高薪,算法都一定很重要。”
为什么,算法会如此重要?
不瞒各位说,这点我最有发言权,因为我也曾怀疑过,但就在我初入职场时,一位资深前辈对我说过的一段话,让我受用至今:
我们招人的时候都有一个标准,就是招进来的这个人至少要排到 team 里面前 50%,因为只有这样招进来的人才能够让我们的 team 更加强大。
那怎么评判这个人能够在 team 里面排到前 50% 呢?
其实是有很多标准的。
比如说算法数据结构就是里边很重要的一部分。
其次,他的逻辑思维能力,系统设计能力,他的职业素养等等。
但是算法和数据结构占的比重还是最大的。
虽然很残忍,但是大家都知道这个真相:程序员这个群体也是有金字塔结构的。
金字塔结构,就意味着有塔尖,也意味着有塔底。
如果你连基本的算法和数据结构都不会,那基本上属于比较底层的程序员,比较底层的程序员就意味着比较低的薪酬。
这也是为什么我总是这么不厌其烦的劝别人好好学算法的原因,因为同样是出售脑力劳动和时间,你就是会比别人少赚,所以请看在钱的份上,不要忽视算法跟数据结构!
那怎么验证你算法的能力呢?
先看看以下这些大厂必考经典题👇
- 请问,Object作为HashMap的key的话,对Object有什么要求吗?
- 请问 hashset 存的数是有序的吗?
- 输入一个二叉树和一个整数,打印出二叉树中节点值的和等于输入整数所有的路径
- 二叉树的搜索区间
- 现在有一个单向链表,谈一谈,如何判断链表中是否出现了环
- 随机链表的复制
- 找出数组中和为S的一对组合,找出一组就行
- 求一个数组中连续子向量的最大和
- 谈一谈,如何得到一个数据流中的中位数?
- 你知道哪些排序算法,这些算法的时间复杂度分别是多少,解释一下快排?
- 请你解释一下,内存中的栈(stack)、堆(heap) 和静态区(static area) 的用法。
- 说一说,heap和stack有什么区别。
- 请你设计一个算法,用来压缩一段URL?
- 谈一谈,id全局唯一且自增,如何实现?
- 一个长度为N的整形数组,数组中每个元素的取值范围是[0,n-1],判断该数组否有重复的数,请说一下你的思路并手写代码
- 请问求第k大的数的方法以及各自的复杂度是怎样的,另外追问一下,当相同元素时,还可以使用什么不同的方法求第k大的元素
- 判断一个链表是否为回文链表,说出你的思路并手写代码
- ...
懵逼了吗?
你能答出几道?
其实破题之道,说出来真的很简单,就是下“笨功夫”,多刷题,见的多了,会的就多了。
但是别着急,刷题也有刷题的方法, Leetcode 内容复杂、网上资料良莠不齐,想要靠自己梳理清楚确实不容易。
为了帮助大家顺利挺进大厂,我们研究了各个大厂的面试题型,总结出「 100 道大厂算法必考面试题+详细解答」这份资料。
其实,不管你面不面试,多刷点算法总比老是写业务代码有意思的多,可以活跃自己的思维。
反正,上面提到的资料,免费送给大家。
但是需要提醒一下的是,我申请到的资料数量是有限的,只有先到先得,拼的就是手速啦。
如何领取?
扫描👇海报二维码即可免费领取
「2021大厂算法面试必考100题」