大厂笔试面试,你必须会哪些经典算法题目?

首先,强烈建议采用“题海战术”。

我今年面了数十家公司,90%的题目是原题(没办法,就那几个知识点,能有什么新题)。

题库在哪里呢?

按照循序渐进的原则,一一介绍:

1. cc150,全名cracking the coding interview - 150 Programming Questions and Solutions。

经典中的经典,曾有人别的啥都不做,刷这本书三四遍,拿了Google的offer(注意是在美国,在中国就算了……)。

这本书的优势在于分章节,每章突出一块知识,题目精炼,答案好找;缺点呢,你写出的代码,需要深度检验,而cc150是书不是online judge,这个还是做不到。

2. leetcode。

程序员刷面试题的第一网站,题多且全,少部分题目收费。刷的人很多,答案非常好找。

online judge能深度检验代码的正确性,刷leetcode是最能锻炼算法题能力的。假如说时间有限只能刷一个,那必须是leetcode,假如时间够多……lintcode、meetqun等各大面试题OJ欢迎你,此外还有许多国内外大学的OJ。

以上是两大主力,但是光这两个,还不能到“题海”的水平,而且由于它们名气太响,有些公司有时会避开里面的题目……来,我们继续找题目。

3. 编程之美、剑指offer

就当成两本习题集好了,里面有些题目和1、2重复,但是大部分题目还是很优秀很巧妙的。重点是交叉对比,你就知道哪些是经典题目了。

4. careercup、看准网等

每家公司都有自己喜欢出的题目,这些网站方便你去找面经,紧跟公司出题潮流。

5. “结构之法”博客

July大神的博客,内容丰富,学习一年都可以。

这里只讲里面的算法题:“微软面试100题”(实际上已经快500题了)系列,堪称算法题的大宝库,包罗万象,而且很多题目很新,是面试官喜欢出的类型……不过这个系列的排版略微混乱,很多题也没有答案;“程序员编程艺术”系列,讲的很细致,适合深入去学习一些算法;“教你如何迅速秒杀掉:99%的海量数据处理面试题”,很实用的海量数据处理面试文章。

6. 经典库函数。

这块单独拉出来,是因为考的很多,比如atoi,strstr,memcpy等等……在“程序员编程艺术”中,杂七杂八有相关的论述,最好自己系统整理一下。

好,这些足够我们的题海了。

下面来讲一下,哪些属于题海中的重点。

1. 最高优先级:面经。

这个比什么都重要,为了节约招聘成本,同一家公司的题目,通常不会换的太勤快。

2. 次优先级:很经典的题目。

什么定义为经典?前面我写了123456,假如某道题目能重复出现几次,那绝对是不朽经典(如atoi、LCS、LPS、单链表逆置……),经典的题目毕竟出的最多,一定要非常熟练。

3. 再次:稍微短一点(50行之内),稍微新一点的题目。

面试官通常时间有限,没时间让你写个上百行,所以50行左右是最好的。

4. 最末:答案很长的题目。

这种题目一般不出,要是出出来,一般就是压轴大戏,为了最后检测。通常长题目容易乱,分模块慢慢写,不着急。

光在IDE上敲是不够的,还要练习多在纸上写。

做多了,就会感觉这些题目都一样。

无非dp、二分、排序、递归;无非开数组、调函数、用stl……

然后题主就会悟出算法题只是公司招聘没办法的选择,因为面fresh grad也没啥别的方法了,这个方法最简单粗暴高效。

然而实际工作中,重要的还是项目能力。能悟出这个道理,你就该修成正果了。

文源网络,仅供学习之用,如有侵权,联系删除。

我将优质的技术文章和经验总结都汇集在了我的公众号【Java圈子】里。

为方便大家学习,我还整理了一套学习资料,涵盖Java虚拟机、spring框架、Java线程、数据结构、设计模式等等,免费提供给热爱Java的同学!

大厂笔试面试,你必须会哪些经典算法题目?_第1张图片

你可能感兴趣的:(大厂笔试面试,你必须会哪些经典算法题目?)