您的位置:首页 > 其它

百度2016实习生面经(三面)

2016-06-01 22:32 274 查看
五一在外面玩的时候收到百度发来的下周六上午10点面试的通知,那是一个兴奋啊。唉,导致了五一玩的那叫一个纠结呀。一边玩一边想着面试的事,真叫痛并快乐着。嘿嘿。终于体会到了心在曹营身在汉的感觉。五一过后,便返回学校了。返回学校之后,便是复习以前的知识。数据结构、操作系统、计算机网络、linux、C++等。唉,复习的想吐了,都有想撕书的冲动了。终于,这艰难的几天过去了,周六来了。好激动啊。因为10点面试,早上8点起床,整理了一番后,蓄势待发。找了一间比较安静的教室,大概也就9点10分了。看了几眼书,其实根本就看不进去。开始把耳机拿出来,等着电话过来,啊啊啊,但是悲剧了,耳机是耳塞式耳机,一个头竟然掉了。只有一个头,唉,只能带着残缺美上路了。终于等到10点了,以为会按时打过来,结果还没有,就怎样一直等啊等,那叫一个紧张and纠结啊。终于10点40,电话all来了。面试官上来先道歉,说让我久等了,面试官挺客气的,说话的声音听着比我大不了多少岁。嘿嘿。然后就插着只有一个头的耳机面试就正式开始了,

一面:

例行公事,上来要我自我介绍。还好之前我有准备。之前去腾讯面试的时候,第一次没有经验,连自我介绍都不知道该怎么说。唉唉,还是自己太年轻了。然后我就把我之前准备的自我介绍说了一遍,中间还贱贱的反问了两个问题。1、在栈上,定义数组时,为什么不可以用变量作为数组的长度。2、在函数内定义一个字符数组,用gets函数输入字符串的时候,如果输入越界,为什么程序会崩溃。现在想想,这两个问题还写的比较有价值。然后面试官对我的第二个问题也挺感兴趣的,就问我为什么,因为之前准备过,然后我就balabala,涉及到C/C++函数调用机制,以及汇编层面的知识。感觉说的还可以,面试官听完之后什么也没说就开始正式问问题了

1、上来问了我的最近的一个项目,技术难点啊,怎么克服的。balabala

2、C++引用和指针的区别,这个学过C++的应该都知道,然后我也说了一些涉及到汇编层面的东西。比如引用其实是占用内存空间的、引用的指向并非是不能修改的,可以通过嵌入汇编代码修改。

3、C程序内存布局,这个应该都知道。

4、说说栈区和堆区,又是balabala,说的挺详细的

5、new和malloc的区别,其实都挺基础的,继续balabala

6、快速排序的思想、时间复杂度、三种快排以及四种优化方法。当时脑子抽了,把时间复杂度说成了O(logn),艹啊

7、进程和线程的区别,这个学过操作系统的都不在话下,可以说一些深入的东西,Linux内核级线程啊什么的。

8、进程间的通信方式,管道、消息队列、共享内存、信号量、套接字

9、又问我IO多路,select、poll、epoll,epoll机制

10、说几个linux命令,我说awk、grep啊什么的。怎样建立文件夹、查看文件夹的大小、查看CPU使用率等

11、又问我最近在看什么书。因为之前看别人的面经的时候,说一面问你看什么书HR面也会问,你最好回答的都一样。我就说C++编程思想、深度探索C++对象模型、数据结构与算法

12、最后他说问我一个开放性的问题:秒杀一个奖品,让你设计一种软件模型。瞬间傻眼。然后一想,要解决高并发、高流量、避免重复秒杀奖品。然后就说可以用生产者消费者模型来,给奖品加锁,他说,可以,但是加锁之后会降低并发量,问我怎么办,我想了说可以分流,把高流量分流,他又问我怎么分流,我说可以把奖品分组,每一组奖品加锁,然后把分流后的每一组流量分别打到每一组奖品上。他说可以,问我还有没有别的方法,我想了一会说,不知道了,唉唉,比较菜。他说,没事,这就是一道开放性的问题,没有确定答案。但是后来才知道,这是不可以使用锁的。把数据放在内存中操作,不把结果立即写入数据库,在内存中操作以及用系统自带的锁机制。

13、差不多40-50分钟也够了,他说他要给我登成绩,说我可以先去吃个午饭。也没有让我问他问题,不过这样也好,我也不知道问什么,之前准备了问面试官的问题,现在看来,还好没问,我准备的两个问题刚好二面面试官我问他一个,HR面试官问她一个。刚刚好。之前以为自己撑不到最后就只准备了两个问题,一面和二面。

二面:

下着雨,关键是还没有伞,呜呜。吃完饭后回到图书馆休息,突然1点10分左右二面面试官就打过来电话了,问我方便面试不,肯定方便啊,我说,让我找一间比较安静的教室。约定15分钟后打过来。果然15分钟后打过来了

1、上来就说对我的项目经验比较感兴趣。感觉自己做的项目在人家眼中就是小程序。问我项目中遇到什么技术难题,怎么解决的,还有对软件设计的看法啊,拿到一个项目后,你是怎么进行架构设计的,然后就在那里和面试官扯开了,什么自上向下啊、模块分解啊、界面实现和业务逻辑实现分开啊什么的等。又问我在我的那个项目中,C++是用面向对象程还是面向过程的方式写的,我说我先抽象出一些类,然后balabala。问了大概有20分钟,差不多快占面试时间的一半了。说完之后就感觉自己戏不大,自信心暴减啊。感觉二面应该通不过。接下来终于问我具体的编程知识了

2、说说C语言中union和const关键字。又是一顿balabala,又问我union有什么好处,我说节省内存空间,设计一个学生的成绩时就可以使用共用体,他还问我有没有别的好处了,我说还可以用来测大小端存储,别的就不知道了

3、C语言中变量有几种存储方式。这个学过C语言的应该都知道,balabala,不过感觉最好说的细致一点,我有说了一些关于编译器层面的理解。

4、又是这两个问题,一面都问过了。进程和线程区别、进程间的通信方式,回答的和一面一样

5、线程间怎样实现独立访问,我说可以用锁,他说除了用锁还可以用什么,信号量,条件变量。可以使用互斥量和信号量来实现线程池之间的同步。

6、然后又问我对XX数据库理解不,第一,没有听清是什么数据库,第二完全没有听过这个数据库。直接说不知道。然后他说,那问你关系型数据库的问题,他说的那个数据库应该就是非关系型数据库了

7、说说数据库的事物,我说不知道。唉,没有复习数据库,艹啊,自信心又大减

8、数据库为什么要建立索引,以及索引的缺点。索引由B+树实现,索引类型等balabala,感觉说的一般般

9、vector的分配问题,balabala,还好没有问vector为什么每一次扩容都是2倍,这个问题之前百度过,但是没有找到答案,个人感觉是采用Linux内存管理的伙伴系统的思想。还有在vector中插入n个数的时间复杂度,尾插是O(1)即常数时间复杂度,如果插在中间或头,就是线性时间复杂度了。插入后会造成之后以及当前迭代器失效等等

10、有2个很大的文件,也就是不能放到内存中,文件的每一行存放的是一个URL,每个文件的URL都不重复,但是两个文件之间可能有重复的,让你找出两个文件重复的URL。明显的大数据问题啊,还好之前准备过。我说,先通过哈希映射,用URL做哈希码,把每个大文件分成许多的小文件,他又问我,URL怎么做哈希码,我说URL也是字符串序列,可以把每个字符的ASCII码相加,他说这样做哈希冲突有点大,又问我怎么处理哈希冲突,等,这些都是课本上的,还应付的来。然后我又说可以把每个URL截取3段,最左边,中,和最右边,然后求ASCII码。然后我又说,可以用bitmap来把每一个小文件里的URL映射到唯一的一个位中,如果位有相同的那么这个URL就是重复的URL。他又问我,怎么把URL映射到每一位中,艹啊,于是想了之后说,可以用一个基准字符串,把URL的每个字符到这个基准字符的距离相加得到一个整数值,这个整数值就可以唯一的标识该URL了。其实后来才知道有字符串哈希函数的。最常用的莫过于ELFHash了。他说bitmap中有重复的怎么办,我说如果重复了就可以说明这个URL是重复的,就可以确定了。然后面试官也木有说什么了。可能是我太菜了。。

11、有n个数,找出第k个大的树。我说可以先维护一个k个元素的最大堆,然后遍历剩下的n-k个元素,如果大于最大堆的根,就交换值(当时说错了,应该是最小堆。艹啊,太紧张了饿。)遍历一遍得到k个元素的最小堆里的k个数就是最大的k个数,然后快排或者堆排,最小的就是第k个大的数

又问我时间复杂度是多少,我说O(nlogn),当时紧张说错了,应该是O(nlogk),他又问我还有没有别的方法,如果数据在内存中可以放下的话可以使用快排的partition函数。达到O(n)

12、问我有没有想问他的,我就说了一个,感觉二面都不会过了,就直接回图书馆了

HR面:

刚刚到图书馆还没有坐下来,HR姐姐打电话说她是第三面面试官,声音好甜,嘿嘿然后我说等我找个安静的教室。又是飞奔到教室。

然后上来就问我想什么时候去实习,实习时间啊,我本来想说实习暑假的,想了以下太短,又说实习3个月,她说希望可以至少实习半年。那必须听人家的啊。我急忙说,我们课比较少,可以实习半年。她又问我什么时候去实习,她那边希望尽快最好,我傻啦吧唧的说7月中旬,她说可以。感觉应该说立刻可以去实习的。唉唉,接下来就是正式面试了

1、问我的项目,感觉问的比二面还要细致,我就balabala,说了好大一会,说的嘴都干了

2、又问我对搜索引擎的看法啊,技术难点啊,什么的,非法排名啊

3、又问我对当下比较热门的技术的看法,人工智能、机器学习什么的,一直在那里扯,感觉都不知道要说什么了,感觉HR面比技术面还要煎熬

4、又问我有没有搜索引擎、数据方面的项目经验,啊啊,直接说没有

5、又问我对什么感兴趣,算法啊、等,我说算法,又问了一大堆算法方面的东东

6、问我想从事哪一块的工作,我也不知道有啥,嘿嘿,我就说C/C++后台服务器开发,她说,范围太大了,我给你说几种吧,数据挖掘、机器学习、人工智能等。我随便选了一个,数据挖掘。其实后来才知道这是个坑。本科生做不了的。研究生才做的。

7、又问了我数据挖掘的好多东西。比如想挖取大众点评的论坛的里面的内容,要怎么样做。艹啊,一顿乱扯。我说先用一个爬虫去爬取,可以伪装这注册一个用户,然后这个用户就可以看到论坛里面的东西了,就可以用爬虫来挖取走。然后我又说如果大众点评有这种反假用户分技术就不好半了,balabala,说了一大堆,然后又说但是这种方式效率有点低,我说可以分布式。。。真的快顶不下去了。

8、又问我数据挖掘的技术难点啊,我叉,身体and心灵已经千疮百孔,我说第一,会被识破虚假用户的身份,她说确实是一个难题,我还说数据更新这一块也是个难题,具体更新到什么时候也不确定。还真被我给晕对了,看来平时经常关注互联网还是好处大大的。HR姐姐说这还真是一个比较大的难题。看来今天是人品大爆发了,嘿嘿。

9、问我有没有什么想问她的,我说百度公司内部文化。

后记:终于完了,3面大概都是40-50分钟。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  百度