校招_美图_C++研发

美图实习和校招都在学校开了宣讲,这是为数不多的还在本校开宣讲的互联网公司了,那必须得去支持一下。由于被实验室抓去写项目申请,这几天忙的要死,所以宣讲没有参加,直接去笔试。

笔试

基础题似乎比实习时候简单了一些,也可能是近几个月对基础加以复习了,所以看到题目都还有思路。可是编程题和设计题确实就比较难了,自以为简单,结果都是错的。这次笔试大概比实习的时候笔的更糟,因为接到的面试时间被安排在下午4点(上次好像是3点),而笔试做的比我好的同学都被安排在我之前面试,我推测大概面试时间是按照笔试成绩安排的吧。

有两题比较经典:最大子矩阵的和,用动态规划后也才优化到o(n^3),思路是如何把二维转变为一维,当时想的是怎么找一个公式去描述规律,结果方向错了自然很难想出来;另一题是前K大的和,这题在九章算法中有讲到,基础版本是两个数组分别从大到小排序,每个数组出一个数,找出前K大的和,思路是将这两个数组构成一个二维表去做,结合最大堆完成,拓展版本是N个数组,思路是先求前两个,取出前K大的和作为新数组,再与第三个数组重复上述操作,生成新数组后与第四个数组重复上述操作,以此类推。

一面

笔试第二天本该参加面试的,结果那天被实验室抽调去写项目申请了,就没去,后来另约了时间,就拖到了9月18日。同样的会议室,同样的面试官,同样的HR,上次面试实习没拿到offer,我想试试这次如何,看看自己这几个月是不是有进步。

总的来说,第一轮技术面相比于笔试和其他公司的面试来讲还算简单,都是一些很基础的数据结构与算法。面试官先让我做个自我介绍,然后很直接地就开始面了几道leetcode的easy级别的题目:如何判断两个单项链表是否存在交点;如何判断某个单项链表是否为环;分析顺序数组和map的好坏;最大连续子序列和;一个文件的每行是一个单词,统计这个文件中每个单词的出现次数(分类来讲,如果是小文件:map或字典树,如果是大文件:哈希成小文件,然后按照小文件方式处理,最后合并);如果用shell统计一个文件内的单词数,如何来做。

对于计算机网络的考察倒是蛮细致的:TCP依靠什么保证可靠传输(三次握手,滑动窗口,拥塞控制);TCP建立连接过程中如果把网线拔了,会出现什么情况(详细分析,建立连接的具体过程中的某个过程拔网线,各会出现什么情况,是否一样的效果);TCP三次握手状态转换自动机;慢开始和拥塞避免算法。

总结起来问题不多,但是居然扯了将近一个小时了,也差不多了。接着就问了问平常是如何提高自己的技术水平,喜欢看什么书,读过什么源码之类的问题,就结束了。

HR面

依然是上次的HR,似乎已经不记得我了,毕竟她们面试那么多人,而且时间也过去比较久了。HR面经历的多了,来来去去的问题跑不出那个范围。保研还是考研,希望薪酬如何,目前有没有其他公司的offer,投没投其他公司等等。最后,HR说还需要经历一轮技术总监面试,但是时间不敢说固定了,因为最近可能出外地开宣讲会比较占用时间,让我等着就行。

你可能感兴趣的:(校招_美图_C++研发)