一大早还没怎么睡醒就打了辆车去酒店面试,到了9点,我被带到一个房间,里面摆了张桌子,上面有纸笔。面我的是个看起来挺年轻的GG,说话感觉挺亲切稳重的。
上来让我写快速排序,基本的思想我清楚,但是写到了的比较交换那个地方有点卡壳,但是还是更具自己的理解把代码完成了。之后果然,他看看我的代码之后,对比较交换的那部分有些疑问,针对我的代码让我想想优化的方案,我嗯嗯啊啊没有给出理想的方案。之后让我分析了快速排序的复杂度,这个还算顺利。
然后给了个算法题,让我求一颗树中任意2个节点的最近公共父节点,我擦了。。。之前没听说过。一开始,我还以为通过子节点可以直接找到父节点,结果GG说,不提供这种操作。那么这个问题就转化为了找到一个节点的父节点的问题,又想了30秒,T T,只能想到从根开始遍历。然后被问到,这种遍历的算法的复杂度,我又嗯嗯啊啊,从N到LOGN,又到N,最后在提示之下总算答对了。。。TAT,平时这种训练还是太少了。。。最后还问了优化算法,果断没答出来。。
最后又给了个问题,i++,++i哪一个效率比较高,这个我其实错的很不应该,怪自己一开始没分析清楚,开始打错了,最后提示之下对了。i++返回的是i,缺要让i+1,而++i只需要让i+1,再返回i就行了,果断应该是++i效率高,后来回来的路上才醒悟到为什么我以前很多算法书上都是用++i的。
最后结束之前,我问了下有什么参考书能够推荐一下,GG说了很多,effective c++,代码大全,开源项目等等,最后告诉我一个好的程序员应该具备好的代码能力,分析能力和设计能力。我的百度面试就这样结束了。。。。
总体感觉百度不愧是一个NB的企业,评判一个人不问你的出处和学历,只看你的基本功和能力水平。对于我来说总结一下还是缺乏思考,缺乏锻炼,很多东西没有深入,很多地方需要加强,恩,我还是太年轻了,如果这次过了,那是幸运,不过的话,明年再来吧
上来让我写快速排序,基本的思想我清楚,但是写到了的比较交换那个地方有点卡壳,但是还是更具自己的理解把代码完成了。之后果然,他看看我的代码之后,对比较交换的那部分有些疑问,针对我的代码让我想想优化的方案,我嗯嗯啊啊没有给出理想的方案。之后让我分析了快速排序的复杂度,这个还算顺利。
然后给了个算法题,让我求一颗树中任意2个节点的最近公共父节点,我擦了。。。之前没听说过。一开始,我还以为通过子节点可以直接找到父节点,结果GG说,不提供这种操作。那么这个问题就转化为了找到一个节点的父节点的问题,又想了30秒,T T,只能想到从根开始遍历。然后被问到,这种遍历的算法的复杂度,我又嗯嗯啊啊,从N到LOGN,又到N,最后在提示之下总算答对了。。。TAT,平时这种训练还是太少了。。。最后还问了优化算法,果断没答出来。。
最后又给了个问题,i++,++i哪一个效率比较高,这个我其实错的很不应该,怪自己一开始没分析清楚,开始打错了,最后提示之下对了。i++返回的是i,缺要让i+1,而++i只需要让i+1,再返回i就行了,果断应该是++i效率高,后来回来的路上才醒悟到为什么我以前很多算法书上都是用++i的。
最后结束之前,我问了下有什么参考书能够推荐一下,GG说了很多,effective c++,代码大全,开源项目等等,最后告诉我一个好的程序员应该具备好的代码能力,分析能力和设计能力。我的百度面试就这样结束了。。。。
总体感觉百度不愧是一个NB的企业,评判一个人不问你的出处和学历,只看你的基本功和能力水平。对于我来说总结一下还是缺乏思考,缺乏锻炼,很多东西没有深入,很多地方需要加强,恩,我还是太年轻了,如果这次过了,那是幸运,不过的话,明年再来吧