原文链接:
百度搜索实习生面经
一面面试官是个小年轻,非常Nice。
先是自我介绍,之后就是出题
1、有序双链表去重,很简单。
2、TCP、UDP、网络编程socket,问一些QQ传送是什么协议,答得一般,最后说不太了解
3、多线程、进程线程区别,多线程编程注意哪些问题、线程间通信、进程间通信、答得也一般。
4、shell编程、脚本语言,当时嘴贱说了解一点,其实基本不会shell,一个文件每行放站点跟IP地址,所有站点不重复,要求输出IP地址以及出现次数。当场跪。
5、A与B是朋友,B与C是朋友,则A与C也是朋友,一个很大的文件,每行放两个人名字,要求输入两个人名字,能够快速判断是不是朋友关系。
立马想到的一种是set(string),把一个朋友圈里面所有人当作一个set,共有M个圈子,时间复杂度是O(M),问有没有更好的。
当时想到了位图,所有名字进行映射,然后用一个大矩阵存储,输入两个名字找对应位置,时间复杂度O(1),空间复杂度比较高 O(n^2)。问还有没有更好的。没想出来
6、概率题。随机电子密码正看倒看都是数字的概率。正看倒看是同一个数的概率,比较简单。
然后问看法,之后直接把2面叫上来面
2面面试官看起来不怎么nice,整个人冷冰冰的,爱理不理。
继续自我介绍。花了挺长时间讨论项目,实验室的项目都非常的水,也没得说,有做过一个界面的项目,聊的比较多。
问:做得项目跟我们的需求不符,你怎么看。(脸很臭)
只能笑笑说是导师分配,但是平时喜欢看一些算法、数据结构的书籍,兴趣在此
问:除了。。。这些项目,还做过什么(继续臭脸)
刚好几天前做过一个新闻网站,收集百度、腾讯、搜狐、网易的热点新闻的、用的是python。
说了这个项目之后,明显面试官稍稍热情了,啪啪啪问了一堆。啪啪啪答了一堆
问:这个项目还有想要什么改进
灵机一动:搜索(面的是搜索岗)
啪啪啪问了一堆,啪啪啪答了一点。
问:为什么要做这个项目
啪啪啪。。想进军互联网,但是没做过web开发,因此想学,刚好会python,so啪啪啪
OK,进入正题,终于开始问问题了,这个时候才感觉面试官脸不那么臭。
1、判断链表有无环
2、一个人报1-100的数字,中间漏报一个,另外一个人每次只能记一个数,怎么实现 。。啪啪啪
3、问语法。指针引用区别 。。啪啪啪
4、有指向空的指针么,有指向空的引用么。答有立马又问既然引用必须初始化,怎么会有
啪啪啪啪。。返回局部对象的引用。。。面试官嗯了一声不说话了
5、对大数据、hadoop、mapreduce了解么 答了解
6、说一下mapreduce原理 啪啪啪
7、mapreduce所处理数据特点 啪啪啪
8、mapreduce能聚类么?答应该能
9、聚类时要注意什么? 啪啪啪。。特征值的分散。。
10、reduce怎么把同一个键映射到筒里面。。啪啪啪排序
然后面试官开始讲mapreduce的原理,啪啪讲了一堆,讲完之后,好,我们来做一道题。。。
11、两个文件A里面放的是不重复的10亿个数字,B一样。求A-B,A+B,A交B
想加、value=2是相交,value=1,2是A+B,A-B呢,想了一会
啪啪啪。。。A里面将value都设为3。。。value=4是相交。value=3是A-B。
问:不让你修改value。。
啪啪啪没想出来
提示:可以多次输入
啪啪啪,那就跟之前一样了 OK过
12、求第2大的数
立马知道要问什么了,因此不着急慢慢来,冒泡先
果然。一次遍历呢? 啪啪啪
果然 第K个。
不着急慢慢来,先来个数组顺序保存K个,因此复杂度O(n*k)
k=n就是n^2了,优化一下
数组变堆,O(nlogk)
继续优化。。。。。
啪啪啪有点焉了
继续。。。
胡扯。。。啪啪啪
继续。。。
胡扯。。。啪啪啪
提示:不要想数组链表什么的,往树上想
能想到的只有堆了,不满意。
OK结束。有什么问题
最后一道这个? 回去看看B+树。我搓~~~
OK,下去看看3面有没有空。先坐会
5分钟后,3面没空,我送你下去
下楼时候very nice,冲我笑笑,挥挥手,这还是一个人么?
整个面试将近3个小时