【干货】美团面试分享

来源:互联网 发布:西厢 后弦 知乎 编辑:程序博客网 时间:2024/04/27 14:52

纪念一下第一份面试经历

美团面试主要就是分为笔试和面试,笔试以后我恬不知耻地去霸面了(其实也不觉得有什么恬不知耻,权当考察去了)但其实笔试完没多久后我就接到了约面试时间的电话了。

美团是分批面的,基本是一次性面完(反正我是这样),总共三面,全都是技术面!!!(划重点)

要是有一面没有通过,直接说farewell好了。总得来说,前两面没什么压力,面试官基本是和颜悦色的,不会很严肃;但是闯到第三面的时候,你能明显感觉到差别,面试官基本面无表情,要做好心理准备,面试过程中碰到什么问题都不要消极处理,积极应对总有扭转看法的一刻。

面试过程:

美团的笔试题目,算法程序题居多,最后有安卓的、前端什么的题。美团的题目还是不难的,特别看到几道题目在lintcode上刷到过一模一样的,心里真的暗喜。

第一面:

随时随地Be Nice,一个看似貌不惊人的普通员工,下一秒就可能是你的面试官;反正那个领着我去面试的人,突然和我并排坐下就开始给我一面了,我还是小小吃惊了一下的。

反正一上来就要做自我介绍,这种算是面试基本功了。面试官就开始对我的经历问了几个简单的问题,然后就是问些很基础的问题,有问到,进程和线程的区别;进程间同步的方式,这两个都是很简单的问题。其中还有问到如何编程实现 a^n ,我就说用二分的思想。

说到思想,美团蛮注重思想的,第二第三面过程里如果有什么你一下子难实现的,你就讲清楚你是怎么个思路,不要消极对待就好。

然后就是随意提问的时间,问到了Java里面的各种语言机制,问到了计算机网络里面的三次四次握手,UDP和TCP区别,get和post区别等等,都没有深问。因为问的很杂很多,面试官不时地会停下来想接下来问什么。最后他让我旁边教室等一下,一面过了。

第二面:

基本上是没问什么操作系统和网络的题目,就直接出算法题了,有如何判断一个二叉树是另一棵二叉树的子树;像打印机一样,倒过来打印一棵树,比如一个树是这样的,输出4、5、6、2、3、1,这个就用层次遍历,存储遍历过的节点,在每一层的结尾存储该层的个数……

面试官检查验证代码超级仔细,甚至还打草稿一句句验算过去。所以面试过程中做题目的时候还是要更加专心一点,不然被他发现错误的时候我还是觉得蛮紧张的。

接着,他出了第二个问题,自己写一个Stack类,要实现push、pop操作。我说,我看过Stack的源码,是用List实现的,他说,用系统自带的没意思,用自己方法实现。于是,我仿照ArrayList的实现方法,内部用一个数组和一个int型的size成员变量实现。

第三面:

到第三面的时候,面试官基本是Boss级别的吧,各种问题啊,兴趣爱好未来规划啥的,感觉有点像了解你这个人的性格和美团契合。前面说了三面圈都是技术面嘛,最后还是要写代码的——

1)实现 char* upcase(const char* src, int len)。

2) 在类似6,7,8,1,2,3,4,5 的序列中用二分查找某个数。

第二题我做到过基本没问题,做题的时候算法选择高效的,美团的竞争蛮激烈的,要让面试官记住你嘛,真的不会做也把思路和面试官说说看。

他还会问问看过的书啊,问几个简单的问题,能答上来就没什么问题。基本上是一些工作要求里提到的名著或者就是教材里学到的东西,平时没问题就能答好,一时想不起来或者这个问题的确没有仔细考虑过,我就是正好有个问题真的不太记得了,诚实比撒谎更好。因为三面的面试官就是大佬级的人物,他知道的肯定比你多,装啊、撒谎啊、忽悠啊是绝对不可行的。我觉得面试官还是希望能我们能有积极解决问题的热情。

前期准备:

对美团注重算法早有耳闻,在打算面美团之前,我除了去找一些前人的经验之外,还是很早就开始准备刷题。而且我觉得这个还是很有必要对刷过的题进行复习的,像我面试的时候不管是笔试还是面试里都遇到了在lintcode 做过的原题。虽然是提前准备的,但时间也不是特别宽裕。我喜欢用lintcode就是因为它可以按照类别刷题,选择不同的tag,就会筛选出来这个类别的所有题目。大大省去找题目和自己分类的时间。比如,可以选择dp,出来的就是动态规划的所有题目。而且题库比较全,题目数量也很多。基本上涵盖了所有IT公司面试会面到的算法题,美团的offer拿到后我又接连面了几家,反正认真刷过的题都在脑子里,总能够在面试中通用。

总之,还是一句话,面美团算法是肯定要刷的,难以实现的就用逻辑清晰的思路来拯救你的面试;在技术都OK的前提下,面试官看重的更多的还是优秀的逻辑思维能力,善于从复杂系统表象中分析问题,对解决复杂问题充满激情。所以,千万不要对复杂的问题表现出消极情绪,积极解决至少让他看到你的诚意。

0 0
原创粉丝点击