百度校招技术岗面经(已确定通过,等正式offer通知中)
9.15 上午11 点 一面
1.介绍项目
2.考研意向,是否确定要工作不考研
3.写代码:在二叉树结点结构中加一个指针域,使其指向层次遍历的下一个结点,特别地,每一层的最后一个结点为空
4.写代码:实现一个简单的单例模式,在多线程环境下呢?
5.常见排序算法分析
开放性问题:
6.平常的开发环境,对 linux 的熟悉程度
7.对大数据的熟悉程度,分析 mapreduce 的底层实现、适用范围
8.详细问项目细节
9.怎么对一个算法做测试和调试
9.18 上午 11 点 二面
先自我介绍
1,给我一个数组[ 1 , 2 , 5 , 10 , 20 , 50 , 100 ],可以从里面取若干个数,要求得出和为 100 的不同取法有多少?
提示:用递归的思想: sum(n)=sum(n-1)+sum(n-2)+sum(n-5)+sum(n-10)+sum(n-20)+sum(n-50)+sum(n-100);
特别地,当n<0 时, sum(n)=0; 当 n=0 时, sum(n)=1;
2,在平面内有坐标已知的若干个点P0...Pn,再给出一个点P,找到离P点最近的点
提示:KNN算法
3,自己的代码量
4,平时有什么兴趣爱好
提示:最好和所选职位相关的爱好
5,问项目中的问题
6,有哪些常见的分类器,简单介绍下原理
提示:朴素贝叶斯、逻辑回归、决策树、SVM 、神经网络
7,对 stl 的了解程度, map 的内部实现原理,为什么选择红黑树,红黑树的由来,与平衡二叉树的区别
提示:map 内部自建一颗红黑树 ( 一种非严格意义上的平衡二叉树 ) ,这颗树具有对数据自动排序的功能,所以在 map 内部所有的数据都是有序的。
8,内存泄露出现原因
提示:动态分配堆内存后没有释放、调用某些库函数没有调用对应的释放函数、创建内核对象后没有关闭对象句柄...
9,多线程编程中的通信与同步,如果不用锁机制如何实现共享数据访问
10,有木有参加过大型比赛,是否获奖
最后问了面试官一个问题:百度怎么看待本科生?
答:在能力相当的情况下,更看重本科生的动手能力,对学历要求并不是那么高,关键是动手和思考。
9.20 上午 11 点 三面
1.自我介绍
2.项目经验介绍
3.最感兴趣的是用 C++ 或者机器学习算法来做开发之类的还是觉得老师布置任务,不管用什么来实现,只要实现了就会很高兴?
4.面试官通过自身的例子来告诉我要多拓展自己的知识面,在某一方面深入之后,往外扩展,向全站工程师发展。
5.开始出题:一个人要过一座 80 米的桥,每走一米需要吃一颗豆子,他最多可以装 60 颗豆子,问最少需要吃多少颗豆子才能走完桥?证明一下为什么我的答案是最少的?桥长 81 米呢?当桥长 n 米,最多装 m 颗的时候结果用公式怎么表示?
提示:参考博文:过桥吃豆子问题
6.大四期间能不能去实习?
7.加 qq 把上一题的代码写完发给面试官。
8.是否拿了其他 offer ?
9.工作地点的选择。
10.讲对应的部门所做工作。