百度三次面试

来源:互联网 发布:数据治理成熟度模型 编辑:程序博客网 时间:2024/05/16 12:12

百度三面

一面:
      面试官人挺好,一直都在微笑,问的问题也是由浅入深的。一般都是通过在问一个问题的时候,发现新的问题,然后再进一步追问。从C/C++ 问,他们二者的区别。然后问到,一些机构化的东西。考到了多态,然后他就让用代码的形式写一个最短的多态使用。在写代码的时候,思维突然进入了混乱,虽然代码没有写错,但是在后来,给他讲解的时候思维进入了误区,将C++ 的虚函数跟JAVA 的抽象函数搞混淆了。在JAVA 中,抽象函数在基类里是没有函数实现的。结果我就说了句“virtual” 在基类中是没有实现的。这个时候,他就指导了一下,指出其中的错误,然后引导着进一步分析。
       接着,写了一个strstr() 函数起始就是求字符串匹配位置。KMP 算法可以搞定,我直接告诉,但是我不会写。于是就用了最简单,最直接,最暴力的办法搞定了。结果又发现问题了,他看了一眼直接指出,内存有可能会泄漏,在双层for 中, 第二层for 不加终结判断,可能造成内存的泄漏。
       C/C++ 只是个开始,然后就是数据库,数据库的内容就不基础了,显示SQL 查询语句,这个肯定是没问题的,直接绕过。然后就是具体问题分析。“给出一个超大的数据量,然后要找出其中某些被查找的内容的top10. 问该如何处理这些数据。”。我是用了链式存储的思想给他绕来绕去,不过这个他最后也没有给出具体的答案,所以我也不知道具体最终结果是什么。

二面:
      这次是个MM 面试官,这姐够直接的。当我进屋子后,先问我上个面试官问了什么,然后就直接就来了句“好,我们先做个题吧”。我心想这个可真够直接的,居然连让我自我介绍的东西都省了。第一个题,从一个点到另一个点的最短路径,中间当然有障碍物。这题拿到手后,第一个感觉就是深度优先遍历算法。然后就是回溯。没什么可说的,给她分析了一下,代码直接说我不会写。然后他问,可以广度优先吗,这个还用问,肯定是可以的塞,但是代码还是不会写。跳过,接着第二个问题,跟一面的一样。海量数据,爬虫爬取大量的数据,然后还有高并发。我当时就二了,这还高并发,怎么搞。最后就想了个死办法,逐步优化,我说使用倒置树形结构,多创建一些临时存储区。逐级缓冲数据,将数据加锁保持数据的一致性。然后将最终的内容也用链式存储的方式,将内容存储在一个最终的存储区里。然后就是保存的问题,当时我们就在是以字节对齐,还是位对齐的地方纠结了一下。最后不了了之了,随便弄了一个答案,反正哥也没抱什么希望。

三面:
       三面以为会是接着考算法,搞的哥头晚一直狂补算法,哪晓得第二天一个算法都没有问。面试官是个帅哥,嘿嘿,看着挺养眼的。他上来就是拿着简历从第一个字向最后一个字看起。特别是项目上,每一个项目都有问到,问项目的实现过程。(超级神奇,阿里巴巴也是在问简历的时候我被刷掉,这次也是在问简历上被刷掉,哥哭,我简历没作假啊)问到B/S 、C/S 模式的不同,他们有什么关系。我当时就2 了,平时没事想这个干嘛啊,还不如多DOTA 两盘,所以就不知道了,就随便蒙吧,就说是他们存在包含关系,B/S 是C/S 的其中一种。然后就问登陆,问新浪这些公司他们的登陆是怎么个模式。诶, 这些问题,平时哪有去想啊,所以也不知道了 。一看,整个三面,不知道的问题不是一两个啊,还能怎样呢,最后就挂掉了。


总结了一下这次面试,学习到的东西有,在做事的时候要注意细节。写代码的时候,想到的问题一定要去注意纠正,保持代码的健壮性。平时没事多想想,扩展一下自己的视野(知识面)。在学校写的东西,跟在公司里的是不一样的。至于为什么不一样呢,就是我们必须去了解,去发现的。