记第一次百度电话面试

今天下午两点到三点,进行了生平第一次电话面试。为时59分钟,纯技术面。

直入正题,就开始了算法的考察。总共问了两个,大约40分钟,第一个在提示下勉强答上了,第二个是真没答出来。

然后是跟项目相关的一些问题,尤其是信息抽取的那个模块,做完以后又问我一些特殊情况的一些想法之类的,唉……被问的没啥想法了都。。

之前一点儿准备都没有,还在忙项目上的事情,本来一些算法就不太了解,这次更加悲剧了……

以下是具体内容:

第一个算法题:有一个数组,设其为N1,如何取出前N2大个数。后来又加上限定条件,假设数字都是0-10000之间的。

才开始见到这个题目,想到了堆排序。因为之前有见到过,非常大的一个数组,取前几个大的数字的话,用最小堆。取前N小的数的话,用最大堆。结果问我具体实现过程,毫无印象- -!根本就忘记了最大最小堆怎么回事儿了。。。囧死,翻开这篇儿继续看

面试官说谈谈你的想法吧,不管别人怎么实现的。我说可以考虑先进行简单的排序,然后取前N2个就OK。他问复杂度多少(他很喜欢问复杂度,你说的想法要是能实现的话,就问你复杂度,全程下来,我大约得算了10个左右的复杂度),我说简单的冒泡排序之类的话,应该是N方。他说还有没有简单的方法,我说快速排序的话,应该是NlogN。然后又让我讲了以下快速排序,这个貌似勉强讲明白了- -!

接下来一直没什么继续下去的进展,面试官提示了一下,这个条件是特定的,数字都是0-10000之间的。你看可不可以统计10000有多少个,9999有多少个之类的。然后……很光荣的,我又跑偏了(- -!真不知道咋想的,都提示到这个程度了)我说可以折半找,5000-10000的有多少,然后不够的话,2500-5000有多少。问最后复杂度多少,我算了下,貌似还是NlogN。。- -!

接下来又经过思考好歹算是给出了答案,算是结束了第一题!

回来跟同学讨论的时候,普遍都想到了可以用基数排序嘛……跟面试官提示的解答思路差不多

第二个算法题:有两个有序数组N1和N2,如何找出其中位数。

有了第一题的教训,先从简单的来吧,就说可以先归并排序,然后取中位数。面试官问,那么这两个个有序数组的排序的复杂度是多少。。我再次华丽丽的2B了!!才开始说的min{N1,N2}吧,后来又经过思考,肯定的回答是max{N1,N2}.然后面试官问为什么,然后各种解释。。最后面试官说,先不管是max{N1,N2}还是N1+N2了,我们继续往下看。我瞬间有想抽自己的冲动,尼玛,是N1+N2啊- -!

继续往下看的意思就是,有没有再简单的方法。我绞尽胆汁啊,毫无思路……(怎么就这么笨!)然后,面试官再次提示:如果给你一个中位数大小的数,如何插入呢?瞬间想到了折半插入,分别从中间找起。然后问复杂度,答曰logN1+logN2。然后就继续了,这基本就是提示了用折半的方法了。但是苦苦思索良久,还是没有给出最终的解决办法。。唉,无奈进入下一环节- -!

项目经验考察:

先是第一个:metasearch,就让我简单讲了讲。然后问我负责哪些部分,我说全是我做的。貌似人家不太感兴趣,就进行到下面一个了。

第二个是信息抽取方面的,详细问了我的实现思路。然后提了若干问题,最后就是针对一些视频网站,正文特别少的,有没有什么思路?我再次绞尽胆汁,说针对大型的网站可以做基于规则的抽取。。面试的哥哥问,那一些小众的网站呢,还是一点儿想法没有- -!

接下来时间就差不多了,下面的文本分类、hadoop、mpi的都没有问到就该结束了,然后问我有没有什么要问他的。我就问他结合这次面试表现,给点儿建议神马的。他回复说,基本的算法和数据结构要理解深入,不能停留在表面,要多思考,有自己的想法才行。

好吧,我的第一次就这么华丽丽的结束了,惨不忍睹- -!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值