跳到主要内容

猿辅导2020届秋招面经

· 阅读需 8 分钟

最初知道这家公司是听说实习工资是800元/天,比字节跳动都高。猿辅导今年给应届技术岗开的薪酬非常给力,本人也顺利拿到了猿辅导的Offer,虽然最终还是拒掉了。

猿辅导是在线教育行业的黑马,薪酬给力的同时面试要求也比较高,能拿到猿辅导Offer的基本还有大厂Offer。猿辅导简历筛选环节比较看重学历,面试风格和字节跳动类似,比较看重编程能力和学习能力,对于项目经验等方面不太看重,毕竟校招生通常项目经验并不丰富。

笔试

猿辅导的笔试有三道编程题,本人AC了前两道。因为秋招时笔试面试比较多,所以没有完整记录,可以参考下面两个帖子:

猿辅导笔试题_技术交流_牛客网

猿辅导9.16笔试编程题_技术交流_牛客网

第一道是螺旋打印矩阵,比较简单;第二题求连续子序列和小于等于s的最大长度,可以用DP。第三题比较难,而且题目很长。

一面

这里为猿辅导的面试点个赞,面试体验极好,三轮技术面试的体验都很赞,能感觉到面试官在非常认真对待面试。

面试官先简单介绍下本次面试流程,虽然各家的面试流程都差不多,但这样的开场能平和面试气氛。面试时间控制得比较好,大概50分钟,不超过1小时。

手撕代码是一道二分法,给一个有序数组和一个数,如果数组中存在这个数,返回最大的索引,否则返回-1。二分法经常在面试手撕代码时考查,虽然二分法的思想很简单,但是,要在面试时快速准确地写出二分法还是有一定难度的。毕竟面试时难免有点紧张,二分法就很容易一紧张写错。

虽然猿辅导的技术栈是Java,我还是习惯用C++来写题,猿辅导并不太介意使用什么语言,Java和C++都是比较通用的语言,面试官基本都懂。不过,Python就不一定了,所以,对于后端开发一般不太建议手撕代码用Python。

基础知识的考查还好,并不难,深度适中。当时并没有记录考了什么,现在也不记得了,所以也没法具体说问了哪些问题。而且,我在各种面试中一面都还是比较稳的,因为之前背了一些知识点,也看了一些书,所以基本能答出来。

二面

二面继续手撕代码,这次的题目稍微麻烦点。一个链表表示的大整数,每个节点一位,从高位到低位;将该链表与一个数字相加。很显然就是高精度,不过,由于链表是从高位到低位的,所以需要先反转链表,再做大数加法,最后将链表反转回来。这道题写了大概50行代码,写得有点快,写错了一点。写完后面试官很快就指出了错误,挺专业的。另外,在反转链表时,为了获取链表尾节点,使用了循环,面试官也指出来了时间复杂度高的问题,并进行了一些提示,最终在面试官的提示下改过来了。

二面一般就聊一下项目经历,问一下其中的难点,偶尔考考基础。因此,项目经历需要提前准备,这样在面试时不必临时去想要怎么表达。我一般从性能优化、技术选型这些角度去讲。

三面

三面是北京现场面试,不过报销车票,所以就去面了。在去北京时华为HR打电话,华为需要现场签三方,考虑了一下最后还是在电话里拒绝了。以前挺向往去华为的,不过华为直接现场签三方不给人考虑的余地还是让我有点小失望,由于有了更好的选择,就选择拒了华为。不过,华为Offer的性价比很高,面试比较简单,虽然今年提了难度,要手撕代码了,但相对而言还是很容易通过的,对名校学生来说,华为还是非常好进的,而且待遇也挺好。

猿辅导三面连撕三道代码题,压力略大。然后就是问问一些个人情况,毕竟没有HR面,所以三面问这些还是可以理解的。

第一道题是二叉树的层次遍历。因为这个代码已经记下来了,当时就直接写了。

第二道题是个DP,机器人走格子。写了下状态转移方程,还提到了可以用滚动数组优化空间复杂度,也写了相应的状态转移方程。也许是觉得比较熟练吧,就没让写代码。不过DP的题,状态转移方程都写出来了基本就完成了一大半。

第三题稍微麻烦点,给一个父子节点对数组,重建森林并返回森林根节点数组。在写代码前,我问了下是否可能有环,他说能考虑到环的问题挺不错,为了问题的简化可以先不考虑环。这个的基本思路就是维护存储当前根节点的HashSet,还需要一个HashMap来存储节点值与节点地址的映射;在读入父子节点对时,根据HashMap判断是否需要创建节点,并维护根节点HashSet,最后把HashSet转为List返回即可。

小结

猿辅导还是比较看重编程和学历的,而且薪资给力,还没有加班文化,论时薪绝对是国内TOP的存在。在线教育目前是一个风口,未来前景看好,公司氛围和福利都挺好,是一个不错的选择。