2014百度【PC客户端研发】校招面经

http://cv.qiaobutang.com/post/55b748b70cf2f86b394ac8a7
校招我很早就开始准备了,但针对具体企业的具体职位,还需要做些特别的准备,这里指讲针对百度的准备。百度的校招开始的比较早,当时一直再犹豫该报什么职位。想想linux也不是很熟,机器学习那个东西,就本科搞过,大数据什么的我也只是云里雾里的。
想来想去,平常都在windows下编程,干脆报pc客户端职位吧。网上找找该看什么书,敲定两本,《windows程序设计》,这是很老的一本书,不过想搞windows下的开发,这本还是很好的入门书籍,另外一本就是大名鼎鼎的《windows核心编程》。
程序设计那本书,没有看完,但核心章节都看了,这对于理解windows的消息机制和窗口重绘有很大帮助,书不难,就是有些东西要多写写程序,测试一下,这样才理解的深,关于这部分就不多说了。重点说说核心编程这本书,哎,又是一本砖头,没办法,既然选择了,硬着头皮上吧。
初看两个星期,实在是不好理解,但慢慢的,从多线程开始,一直到windows内存管理,越看越有意思。说实话,一直觉得自己C++不错,内存分配,对象池管理都很熟悉,可看了这本书后,自己很多的理解都被颠覆了,或者说更进一步了。
再说算法这块的准备,本人不是搞ACM出身,但也刷了不少道题,一般的问题我还是能解决的。你要真给我一个NP问题,我也只能望题兴叹了。这块主要是把平常的笔记整理整理,本人记性不好,都靠笔记活着了。不是有句话说么,好记性不如烂笔头。书看的差不多了,下面就是笔试了。
百度的笔试和腾讯一天,上午腾讯,下午百度,话说那天同学真是浩浩荡荡,整个校园里都是为梦想奋斗的人,我还是挺享受校招的过程的。
下午准时发卷,分三部分,简答、编程和最后一道大题。
简单部分五道题,两个C++相关的,一个操作系统的,一个windows消息循环的,还有一个忘了。
编程是两道题,第一道是给一个数组,数组间相邻的两个数差的绝对值都为1,问给一个数,找到这个数在数组中的位置。这题一开始也没什么思路,毕竟直接找也是O(n)的算法了。那比线性算法更快的是什么呢,很自然的想到了二分,但普通以有序为前提的二分明显不适合这问题。仔细分析下可知,这题有一个突破口,就是相差的绝对值为1。然后写了个算法,类似二分,但最快O(logn),最慢又退回到线性算法了,可是这道题还是被扣了两分。第二题就是找二叉树的深度和最大广度,没什么难度。其实,我觉得第一题出的是这卷子里最有水平的一道题,即考察了学生的基本功,也体现了综合各种信息解决问题的能力,同时又不是很难于理解。
最后一部分分两道,二选一,30分哪。我选择了地图标记文字的那道题,大概就是地图上给定一些点,然后每个点都可以在点的左边或右边(选其一)出现一个包含文字的方框,方框大小都是一样的,问最多能给多少个点标记文字,这就是说,两个文字方框是不能重叠的。问题一共两问,如何设计算法,以及如何改进算法。我的解决办法是先拆点,一个点拆成两个点,然后建图,把相互有冲突的点连线,被拆的那个点的两点之间也有连线。这样,问题就变成了最大独立数问题了,再看看,这图很有可能不是二分的,好吧,NP问题,贪心解之,第二问就没写。

一面。
过了两天,等来了面试通知,由于跟腾讯的面试有冲突,调整了下时间,准时到达面试地点。
面试官很年轻很nice的一个人,从闲聊开始,聊了聊OGRE引擎,聊了聊图像处理方面的问题。随即切入主题,也许是过于放松了,有些题目答的不是很好,最难过的是我怎么都没法把我的思路解释清楚,也因为这个耽误了些时间,整个面试长达两个半小时。
好在面试官还是让我过了,也算给我个机会吧。简单总结下面试的问题,答上来的部分,设计两个C++函数,实现线程安全的队列,设计模式,TCP状态迁移图,一些算法题(就是我解释不清楚的问题)等等。没答上来的,ATL(仅仅听过这个大名),socket状态问题等等。也是在这一面,我知道我笔试得了70分,在面试官手里的卷子中,是最高分了。
二面。
二面总共一个半小时。这个面试官似乎严肃了点,不过没关系,咱也面了不少家了,什么阵势没见过。一上来就写代码啊,你好歹给个热身时间吧。三道编程题,链表反转一道题,然后是两个链表归并,分别用递归和非递归实现。哎,对于自己太过自信了,整个准备校招阶段我就没碰过链表的题目。
想了5分钟,开些,10多分钟,搞定,有惊无险的过了。下面问了个编辑距离的问题,DP搞定。然后什么野指针啊,虚表啊,分金条问题等等,都不难。最后问我单例模式,这个我只是知道点,干脆说不会吧。
接着问我多线程知道吗,我说知道点,但程序写的不多,然后就没问了,什么关键段,内核对象我都测试过啊,面试官什么都没问,这题又过去了。最后问我socket,接着说不是很了解。面试官对我的评价是,算法还可以,但是项目经验不足,婉拒了。

好了,这就是我百度笔试面试的经历,有遗憾,也认识到了自己的不足。最后,找工作什么的,不要追求绝对的公平,好好发挥就够了。

你可能感兴趣的:(别人的经验)