百度面经

  昨天晚上十点左右收到的通知,让今天晚上6点去面试,当时已经有种不好的预感。一是这个点被叫去面试,估计是备胎,二是明天晚上有搜狗的笔试。在搜狗和百度之间,最后决定去百度面试。

  面试官是一个姐姐,问的问题略多,基本上啥都问。

  1.乱序的链表,怎么删除重复节点?空间复杂度要求O(1)

  答:先排序再遍历。

  追问:不能改变链表的顺序,怎么做?

  答:对每一个节点q,从head遍历到q之前的一个节点,看是否有重复的,有则删除q。时间复杂度是O(n^2),这显然不是面试官要求的,这一题给跪了。

  2.一个乱序数组,给定一个值v,在数组中找出所有和为v的数对。例如A={4,1,2,3,7},v=5 那么结果为(4,1)、(2,3)

  答:先将A排序,然后用两个变量i,j分别等于排序后数组的头和尾的下标。例如A排序后为{1,2,3,4,7},然后令x=A[i]+A[j],如果x>v,则j--,若x<v,则i++,若x==v,则输出该数对,然后继续下去,直到i>=j。这是剑指offer上的题目,不过貌似有更简单的做法,面试官只是点了点头,好像不是很满意。

  3.红黑树的性质。

  答:1.每个节点非红即黑,2.根黑,3.叶节点黑,4.一个红节点的两个儿子为黑,5.节点到其任意子孙叶节点的简单路径上的黑节点数相同。

  追问:什么时候使用红黑树?

  答:STL里的map,set就是用红黑树实现的。

  追问:怎么用红黑树实现?

  答:这可难了,我随口胡诌了几句,感觉这个问的有点偏了,或者说不知道从何答起。

  4.GDB怎么使用?

  答:启动GDB,设置断点,run,单步执行,检查变量。

  追问:core了怎么办?

  答:where,或者GDB core文件。查看最后的栈信息。

  5.B树和B+树

  答:这个只在最近看了一次,算法导论上有,答的不好。阿里的笔试题里也有B树的内容,B树是一个重要的知识点。

  6.内存管理

  答:这个知识点也有很多公司喜欢问,我没答上来,建议大家学习一下。

  7.有没有接触过高并发或者大数据?

  答:这个应该是所有互联网公司后台岗都喜欢问的,尤其是BAT,希望大家多看看这方面的内容,还有分布式系统,hadoop等。

  总的来看,百度对算法和数据结构要求是比较高的,如果这两个方面有强项,其他方面弱一点应该也是可以接受的。另外,现在互联网的热点,例如数据挖掘,机器学习等,也最好能了解一二,以便显得知识面广。

posted @ 2014-09-24 20:55  米其林轮船  阅读(393)  评论(0编辑  收藏  举报