百度面试记

9971阅读 10评论2012-08-31 _Rayx
分类:IT职场


刚放暑假时,就发现暑假好短,快七月下旬才开始放假,而BOSS的一句话也让暑假到处旅游的梦想破灭,于是整个暑期基本上都在实验室呆着,前期是在改 ANDROID程序,由于保密的原因,这事不能说太细,后来在帮一个单位写标书,主要是一个视频网站和一个在线商城,由于之前没有写标书的经验,所以写出 来可能不怎么专业,他们后来再找公司修改了一下,我看了修改后的标书,发现虽然内容差不太多,但是公司改出来的文笔要好很多,并且他们在原基础上进行了细 化,对一些细节部分还给出了图示,这个是我需要学习的,编程虽然重要,但是文笔也很重要,技多不压身吗。



在七月未的时候,收到百度给我发 的邮件,说让我有兴趣的话可以把简历发给他们,他们会在校招之前安排一次面试,由于是在校招之前的,所以不管结果如何都不会影响我的校招流程。想了想我下 学期也要找工作,这是一次比较好的实战机会,就给他们发简历了。但是一直没有收到回信,正当我以为被他们放鸽子的时候,就在828号下午5点左右, 百度给我打电话说安排我明天面试,想想29号也没什么事情,就答应了,然后她说面试信息会在随后通过邮件发给我,收到邮件后,发现面试时候是下午2点,这 个时间还可以,部门是推荐与个性化部,这个部门就一点都不了解了,于是请教了一些人,终于对这个部门有了一个比较清楚的理解。


由于时间比较紧张,也没有什么时间准备,就在上午看了一些基本数据结构之后就出发了。到达百度的时候离面试还经半小时,就坐在大厅里好好的休息了一会儿。到快面试的时候去前台叫她帮我叫人来面试,等了一会儿,就来人带我去面试了。


一面上来就是问我对哪门语言的最熟悉,我说现在应该是JAVA ,最近一直在用,然后他说他们部门只用C++python,我说我对C++了解还可以,但是对python就不太熟悉了。他听说后也来了兴致,于是就问了许多C++相关的问题,包话CC++的区别,CC++内存分配的差异,C++多态的实现方法,C++虚函数与纯虚函数的实现方法,C++抽象类相关的问题等,虽然很久没用C++写程序了,但是两个月前左右看了一些C++的知识,所以这些问题还是答出来了。在这之后就开始是现实应用了:一个问题是在搜索MP3的时候是根据歌曲的权值排序的,但是会发现有这样排序后有很多歌手的歌在一起,影响了用户体验,用什么办法把这些排序后的歌曲变成没到两个歌手的歌在一起的情况下并且尽量保证是按权限有序的?这个问题上来就想了一个简单的算法,然后他让我分析算法复杂度,我一分析,擦,是On^2)的,然后问我有没有什么更好的方法,我又想了一会,然后他说去给我打杯水,面试官还是挺nice的,等他回来后,我又想了会,终于想出一个O(nlogn)的算法,他说还有优化的地方吗?想了半天没想出来,于是他就把他们使用的一个On 的方法告诉我了,我一想,还真是,他们的方法很不错。再聊了一些小问题,再就是一个大的开放性问题了,如果让你组织一个团队,这个团队是向看小说的网友推 荐小说更新的,你会怎么做,你会需要哪些人,这些人分别是做什么,这个开放性问题中最重要的就是,你怎么保证向用户推荐的小说更新是他感兴趣的?你所有的 数据就是用户浏览记录。然后我答了大约用5个方向来判断用户对某小说是否感兴趣,百度面试这种题的策略是让你想,你想一个,如果他不了解的他就会深入问你,想完一个后再问你:还有吗?然后答一个后还会问你:还有吗?想不出来了就只好跟他说:没有了,暂时想到的就这些。一面到这就差不多结束了,时间大约是80分钟左右,然后他说让我先坐着,他马上去叫人来进行第二面。


第二面的哥们是个大胡子,他上来就没问题语言相关的问题,估计一二面面试官之前互相交流过,包括哪些问题己经问过了。第一个问题就是给m个关系,每个关系2个数,表示这两个数是一个团体里的,然后问给定2个数,询问这两个数是不是一个团体的,这是一个很简单的并查集的应用,秒杀之,然后他要我现场写出来,我就现场写给他看了,还是不太习惯在纸上写代码,不过这个代码还是比较简单的。第二个问题也是m个关系,每个关系两个字母,如A,B,表示A小于B,然后给定2个字母,问这两个字母是大于关系,小于关系还是未知,当然不存在冲突的关系,也挺简单的,有向无环图而己。除些之外就是一些小问题了,最后问的也是一个开放性的问题,我们现在知道AB的关系,就是微博的关系,数据只有a 是否followb,a转发了ba评论b,问怎么样最大概率的找出a没有follow的,但是a在现实生活中能接触到的人,这个问题比较开放了,面试官对于对于细节要求很高,扯了半天,二面就结束了。然后他叫我先在这坐着,他马上去叫第三面的面试官过来。第二面大约是一个小时左右。


然后第三面估计是他们的一个头头,他上来看了一下表,就说面试会控制在一个小时以 内,也没有技术相关的问题,就是聊聊天,感觉完全没准备。很多问题太突然,没有准备,但由于不是技术问题,所以也不存在能不能答上来的事情,聊完后,他将 我送到楼下,说让我回去等消息。出来后看了一下表,三面是四十分钟。


虽然连续三个小时的面试感觉很累,但是这次面试对我帮助还是挺大的,毕竟走完了整场面试,知道了整个面试的流程。二是对于开放性的问题一定要多想,答错了没有关系,你需要向面试官展示的就是你思考的方式,你想问题的方法能给面试官一个比较好的印象。三面給我幫助最大,我会在下次面试之前想一些这方面的问题再来自己解答,这样就不会在回答的时候显得比较苍促,这样对于给面试官一个思路清晰的印象,毕竟临时苍促的想法与成熟的想法是有差距的。这就是整个面试的过程,希望对找工作的同学们有帮助。

 

 

上一篇:面试题杂谈:体重和
下一篇:linux命令后面的数字含义

文章评论