我的阿里,百度面试经

     鉴于很多同学都问我有关面试的问题,作为一个乐于分享的人来说,我就把我的经历和大家汇报一下吧。

     两次面试都是通过师兄的内推,好处是不用笔试了(对于一个不善于考试的我来说,这着实是一个很大的福利啊)。废话不多说,直接上真家伙。阿里一面过了,二面光荣挂掉,百度很幸运,顺利通过二面,拿到实习生offer。因为当时阿里的面试在前,可以说是一点经验都没有,想着自己平时项目啊,知识储备神马的还行,所以也就没有放在心上。呵呵,正如前面所说二面顺利挂掉。吃一堑长一智,为了百度的面试,我前几天狂看书,算法,数据结构,面试宝典,网上别人分享的面经,可以说是天魂地暗吧。(PS:给大家推荐一本书《编程之美》,相信很多人都看过,起码对我来说是受益匪浅)

     阿里和百度都是电话面试,毕竟不可能为了你自己安排一场当面的面试吧。一般情况是那边的HR先和你预约一下面试时间,你可以根据自己的情况来做决定。到了时间后,你的电话一定会准时响起,接下来就是你大显身手的时候了。有一点我要特别提一下,两个公司的面试官真的是十分和蔼,纯正的普通话发音给我留下了深刻的印象哈哈。说是面试,我更愿称为一场技术的交流。当你有的问题一时想不起的时候,通常电话那头会说:没关系,我们换个话题吧,说一下你擅长的点吧。一瞬间你会觉得对方万丈光芒啊。

    两个公司的方向不一样,所以面试也是完全不同的风格。因为时间有点长了,所以我就尽我所能回忆点滴吧。先说阿里,我在简历中说的是我比较擅长Java,所以面试官问了很多关于这方面的问题。其实问的问题都不难,却是真的十分十分基础(我已经够强调了吧)。比如问到get和post的区别(这个相当经典),ArrayList和LinkedList的区别,HashMap和HashTable的区别,preparedstatement和statement的区别诸如此类吧。我们很多时候只知道如何用,却不清楚为什么这样用,总是用别人封装好的接口,类,却不知看看底层是什么,如何实现的。这算是给我一个很大的触动吧。阿里毕竟时间长了,我还是着重说一下近期百度的面试吧。

    一面上来问了一道基础的冒泡排序,百度很注重算法的时间复杂度,要求你说出最好最坏的时间复杂度。然后问到如果是最好的情况下,什么时候退出循环。面试官说有很多同学都知道最好的情况是o(n),但是却说了一个o (n*n)的算法退出循环。其实看到这儿大家都知道冒泡一趟比较没有交换,直接退循环,不多说。然后是一道链表的题,如何走一趟循环找到链表的中间结点,和判断循环交点一样也是快慢指针,不多说。接下来数组题,找到一个位置使左右两边之和相等,数据是整形的。想了一会说到,头尾指针,左边和右边交替相加,如果左边小于右边,右边加数,右边小于左边,左边加数,直到头尾指针重合。这个时候面试官笑道,你回答了一个80%的同学会想到的一个标准的错误的答案。哦,mygod,面试官,你敢不敢再可爱点!为什么是错误的呢,因为数组中有可能是负数,这一点我是万万没想到啊,所以又想。沉默了好一段时间,终于binggo!第一遍数组求和sum ,然后从头遍历求和count,此时位置记为a[i],判断count-a[i]与sum-count是否相等。还问了数塔的问题,果断动态规划。我的想法是从下往上规划,面试官意思是从上往下做,他说他的比较传统,然后我们就探讨了下从下往上做,这样也是可行的。二面上来也是排序,问的是快排,最好最坏时间复杂度,是否稳定。一道算是数字游戏吧,不借助第三个变量,如何交换两个变量的值。然后问了我知道哪些linux下的命令,像什么cp啊,ls啊就没必要说了,来点高大上的命令,比如chmod,ps,fdisk啊,当然了肯定还有其他同学的命令更加高大上。然后问了简历中hadoop hbase 的内容,还好有准备,哈哈。碰巧又问了hashmap和hashtable的区别,这次可就难不倒我了。接着又是数组问题,求个一数组中个数大于一半的数。方法有很多,面试官会不停的问还有没有效率更好的办法,其实这才是他想要的。最后是一个大文件中字符串匹配的问题。明显是一道大数据的问题,内存中是一次装不下这么数据的,并且匹配也会很慢。这种类型题目网上很多,无非是以大化小,我的想法是果断分割成几个小文件,面试官问怎么分割啊。沉默片刻,那就hash一下吧,写个hash函数,把字符串hash到不同的小文件中去,这样我匹配起来就会快一些吧。我问到可行吗?面试官说你这个也可以,方法是有很多的。最后问了我一些搜索方面的问题,比如你要做搜索会从哪些方面考虑,了解搜索技术吗?还好有接触过网络爬虫方面的知识,然后blabla一通。

    有些问题可能记不起来了,但大致看上去题目还是比较考察基本功的,不会考你很复杂的东西,毕竟是应届生,没有太多经验的。总结几点,准备是一定要的,当然除了大牛,我这类资质平凡的人不仅要准备,还要用心准备。面试的时候要放松,有时候紧张的话会影响发挥的。对自己的简历要十分了解,不论面试官问哪点,都能对答如流。面试过程中,遇到不能解决的问题,也要给出自己的想法,千万不要说我不会,我不懂,一定要试着解决,即使不正确,也能让面试官看到你执着,努力,勤于思考的一面。

    随着时间的飞逝,各大公司的面试,笔试就要轮番轰炸了。因为我是网上面经的受益者,所以也希望我的经历能够帮助到一些人。无非是希望大家都能找到一个适合自己,自己感兴趣的公司。就这么多吧,祝各位安好!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值