高频算法面试题
据我所面试的经验,面试官考察的算法主要分为三派:
- 0考察(一般是面向实习生的小公司)
- Java集合+排序算法(中小公司CURD,面向业务开发)
- LeetCode的算法(大公司,一二线大厂)
恰好我都面试过这三种类型的公司。
小公司不一定考算法,但是大公司一定考算法。
我也遇到过小公司出LeetCode的题目,一般是 简单 级别的,可能面试官为了看看我的能力上限在哪里。
另外就是大公司的算法一般都有2~3道,做出1道基本就是有戏。
下面来详细讲讲这三种情况。
# 1、0考察-小公司
一般就几个开发那种,招实习生或者一年工作经验的
这种特别小的公司,一般不问算法,基本会问一下Java的集合,比如HashMap、List、Set、数组这些有没有用过,各自的特点是什么。
所以这种一般就不需要算法基础了,本来公司业务也没有用到。
如果你不知道Java的集合为何物,可以参考:
# 2、中小公司
这种公司一般开发团队在20~50人左右,有时候面试官比较喜欢刁难人,不止于Java集合的简单用法,还有会问到HashMap的扩容、jdk1.8红黑树情况、currentHashMap、安全、LinkedList和ArrayList的区别 这些问题,问的比较深入,基本上都是八股文。
还有就是排序算法,其中快速排序尤其喜欢问,可以看一下这两块内容:
一般情况下是不会出LeetCode的算法题,再不然就是 两数之和、二叉树遍历了。
# 3、大公司
大公司的算法是必考的,基本上还是手写那种,题目的来源主要是:
LeetCode
LeetCode的 hot100 刷一次差不多了。
《剑指offer》
这本书上的题目基本都会在LeetCode找到,所以看LeetCode就知道了
注:如果你不是要进一二线大厂,是不需要啃LeetCode的
借助topcc网站、牛客网、收集各大博客、大厂的算法笔试题的统计,我总结了一下大厂最喜欢考的算法题,并且分类好了
注:题解大部分来自于LeetCode,都有标注原题和作者,外加自己的理解总结的,如果侵犯了各位的利益,烦请告知,奥利给!
