百度面试

21号一开始通知面试时间为08.23下午15:00,后来说面试官不是很方面,于是调整到同一天的16:00。 
15:20到的奎科大厦,进去之后,有三个人在那坐着,估计也是面试的。本想找靠窗的座位的,一看,那个座位上整起排列着三块1元大洋,怕是被某人标记了,遂在另一个空位坐下。约莫十分钟后得知需要签个表,拿个证件换一张工卡,遂起身去前台填表,留下身份证,换了个工卡——L001号。前台MM说让我提前15分钟和她说声,她给通知面试官下来。 
15:45找前台,一个电话打过去,大约5分钟后,一面面试官下来了,听口音就是8.21打电话通知我来面试的那哥们。此人特别随和,说话和朋友哥们一样。跟着上了三楼,进了一个小屋,里面5、6个小圆桌,除了一个空着的,其他都坐着交谈很激情的帅哥美女。有些可能也是在面试。我们直奔那个空桌坐下。
面试官首先让介绍下自己,我就巴拉巴拉说了本科、研究生都是学的计算机,比较喜欢编程之类的。然后面试官问我是否了解排序算法,说几个具体排序算法的原理。说了快排、归并排序、堆排序的简单的实现过程。然后让我手写个快排的伪代码,简单,事前默写了好几遍。5分钟写好,稍微检查了一下,交给他。他看了一眼,让我讲解下代码。巴拉巴拉说了一堆。紧接着,他看我简历上有参加ACM比赛的经历,就问我比赛过程中印象最深或者遇到的最大的问题是什么,回想一下,09年ACM现场赛的时候,因为我最后一个找N个数的中位数(老oj的1510题——在世界中心呼唤爱),当时想法完全正确(赛后确认的),只是因为时间不够,没有编出来,错失了金牌。又是一大堆的说。他觉得我说的那个题和他有个面试题很像,说我那个算法效率太低,就让我试试这个面试题:给一个包含n个元素的无序数组,找第m大元素,这个问题扩展开来,是对K个无序的大文件(一次可以读入一个文件内容到内存中,文件之间无序,文件里面数字也无序),找第M大的数。我说先回答简单的,用快排,面试官表示同意。然后考虑大数据量的,这个和面试官交流了很久,最后他说其实也没有特别优化的算法,只能排序,但是要讲究方法。因为他说可以使用其他外部存储空间,我就想着每次读一个文件,把其中所有的数据按大小划分,写入到临时文件中(比如数据在1~10000范围内的放到一个文件,在10001~20000的为另一个文件......),其实这个按理说是可以解决的,但最后没有得到面试官的完全认可,也有可能是我表述不太好,他没有完全听懂。他提出对原始每个文件排序后分块,比如排序后第1~1000个数作为第一块,1001作为第二块......,然后不同文件的不同块之间进行比较,找出第M个数。总感觉更复杂一些。╮(╯▽╰)╭ 
紧接着,扯到了研究生做的项目上,让我说下遇到的最复杂的问题,就说了有个功能,数据量很小,但是前台进行访问的时候特别慢,后来加班(特别强调了下)看日志、调试,找出了原来是循环调用访问数据库的代码(类似于递归,不过只有2层),连接数据库的开销过大导致系统慢。并且我们一起分析了怎么个递归法,开始他以为我夸大了优化的效率,觉得只不过是减小了一次访问数据库,不可能优化的很明显,后来举例分析了下,差不多能到几十倍的效率,他才点头同意。 
他看时间还够,就说给我出道智力题,我当然只能说好。题目:四个人黑灯瞎火要过一个桥,他们过桥需要的时间分别是1、2、4、8,但是只有一个手电,过桥的时候必须打手电,且每次最多只能过两个人,问最少多长时间可以全部过桥。我说让想一下。然后就在稿纸上一通画,画了半天,不知道是犯困了还是咋地,觉得每次两个人过桥,速度肯定是由最慢的决定的,然后让最快的拿手电过来,再过去,所以过去的时间是一定的(2, 4, 8),只要保证返回的时间最少,总时间肯定就是最少的。但是又不确定,也没找到证明方法。想了好久心里也没谱,但是就是想不出来出错在哪。没办法,都快5点了,不能太耽误面试官的宝贵时间啊,遂和他说了下。最后肯定就错了呗。最短时间留给大家自己想吧。 
最后又让我说了下项目中用到的数据库,那个数据库设计印象最深之类的。 
完了就说他有点事,出去一下。几分钟后,哥们又回来了,说是他今天面试就到这了,后面有另一个面试官接着面。他还没走呢,二面面试官就来了。此时该小屋里已经就剩下我们三人了(一面面试官走了后,就剩下我和二面面试官)。 
二面面试官明显比一面的哥们要老成很多,气场也更强,估计应该是个小组长或者项目经理级别的。先问我哪年毕业,然后问我本科、研究生都有哪些课程,巴拉巴拉回答一大堆。然后问项目相关的,看到我简历上有个旅游线路查询系统(数据库的课程设计),一通说。问里面用到了哪些算法,回答是Floyd,然后让我给他讲解下(汗死,幸亏提前复习了),稿纸上边写边说。貌似还算合格。接着问了项目和数据库,扯了下一面说的的东西。然后问熟悉那种语言,我说C/C++。那好,咱写个程序吧,去掉C源码中的注释(单行和多行)。动手写吧。以前看到过比较完善的源码,只记得其中需要特殊考虑字符串中的“/”。于是写了个,字符串单独考虑,两种注释单独考虑。写完和他说,一边说代码一边发现竟然没有考虑到原始的代码是否合法,可能有非法的字符串和没有结尾的多行注释。面试官貌似有点不爽,说让我考虑这些错误的情况,再改下代码。那就改呗。还差一点就写完了,面试官有点急了,让我把主体代码写出来就行,并详细说下改动的部分。在和面试官解说这个程序过程中,发现其实不做错误处理直接用简单的逻辑写出来就基本上可以满足要求了,因为发现他其实根本就没有想到错误处理,只是我提出来了,他就让我加上的。并且字符串的特殊考虑他也没想到,还说字符串中的斜杠不是需要转义的嘛。我说那是反斜杠,他才恍然大悟。然后问了我对那块比较喜欢,毫不犹豫说个人比较喜欢算法。最后问我有没有问题,问了百度的培训。回答说百度的培训很棒,尤其对应届生,除了公司有同意培训,部门还有针对性的培训,对应届生的职业发展非常有利等等。 
完了就说差不多了,把我送到三楼楼梯口,说他不下去了,让我去前台还了工卡就可以了。礼貌的表示感谢后,撤走。到前台取身份证,才发现已经18:12了,两个多小时,竟然也不感觉饿。 
出门,大吸一口新鲜空气。尼玛竟然忘记问面的啥职位了(因为是托同学内退的,不知道具体面的啥职位),也没问啥时候有结果。就这么招吧,估计希望渺茫了。 
回程路上一想,找工作才开始嘛,虽然发挥不是很好,但是机会还有很多的,不能泄了气丧失了斗志啊。O(∩_∩)O哈哈~ 
  
最后预祝今年找工作的各位兄弟姐妹们,都能早日拿到心怡的offer。 
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值