blog » 职场进阶 » 面经—-创新工场、ebay、小米

面经—-创新工场、ebay、小米

上午收到ebay的offer,这段时间的实习笔试、面试算是告一段落,最终成绩是2/3,虽然被最初想去的创新工场拒掉了,但却意外得收获了小米,也算是有失有得。

创新工场

工场的暑期实习招聘消息最初是在微博上看到,因为一直有创业的想法,所以对这种企业孵化器型的公司非常感兴趣,于是第二天就网申了。过了大概半个月收到电话,约我4月5日(清明节后一天)电话面试。当时灰常的兴奋和紧张啊,人生第一面啊!可惜的是正值清明假期,实在是无心学术啊,一边翻《算法导论》一边看电视的人你伤不起啊,这也直接导致了最后悲剧的结果。(PS.工场的HR姐姐声音相当正啊!)

4月5号晚上七点电话来了,对面是个年轻小伙子,先自我介绍blablabla,然后问我做过什么项目blablabla,接着就要我把项目发过去给他看==|||,这也太不按套路出牌了。没办法,把电脑里能找到的几个项目打包发了过去,然后他给我一个网址,collabedit.com,可以合作编辑文本的一个东西。开始做题,我在线编,他在线看。

第一题:用C语言将字符串转成数字。非常基础的题目,不过由于太紧张,犯了很多低级错误,在他的提示下修改多次后完成了。

第二题:找到两个字符串的最长公共子序列,比如abdeg和cbadg的最长公共子序列是bdg。搞过ACM或对算法比较熟悉的童鞋应该一眼就能看出这题要用动态规划了吧,可惜彼时的我too yong too simple,想来想去也找不到什么优化的算法。面试官急了,提示我用动态规划,我一看,这词怎么这么熟悉呢,果断百度百科,结果复杂的一米啊!20分钟速成动态规划不太现实啊,当时头脑已经一片空白了。。。最终我还是缴械了,带有幻想得给面试官发了封邮件,然后就不出所料的没有然后了。

其实还是有然后的,那就是我发现面试官竟然貌似是软院的学长!当时我就震惊了!尼玛自己人也不亮明身份,还出这种题坑我,唉,也罢也罢~

ebay

ebay给我的整体感觉就是高效的过程,漂亮的学姐和水水的面试。上午我的笔试发挥很差,11道智力题错了5道(DS的智力是硬伤),还好技术题发挥不错,凭着压线分挤进了下午的面试。

一面面我的是一位慈祥的大叔,一听到他那口音严重的英语我心里就有底了,毕竟哥的英语发音还是过关的。三分钟的自我介绍以后问了我简历里的第一个项目,是大一时el大赛的black jack(是的,我很不要脸的写上去了)。凭着印象说了一点,什么把AI当做玩家,使用统一的事件处理方式,然后就这么混过去了。紧接着又问我简历里的第二个项目,是软工二的即时通讯软件,我靠,这么大的坑你也敢往里跳!我立即表示我是项目的架构师,面试官不出所料的要我画出所做的架构。于是就开始各种client,server神侃,并且中间很有心机得穿插了多线程,心跳包,设计模式,Socket等重要的知识点,等我花了15分钟讲完以后,面试官已然对我另眼相看了。接下来问我java里面怎么做线程同步,我讲了两种方式。最后一个问题是找出整数N以内的所有质数,1到根号n嘛,飞快的写完了。然后面试官问我怎么优化,当时不知道怎么回事就卡住了,完全没有优化的思路,连把偶数剔除掉都没想到(智商真的是硬伤)。不过好在前面发挥出色,最后还是让我过了一面。这里想要提一点,面试时写代码时要注意代码的简洁性和效率,尤其是简单的问题,后面面小米时我也吃了这个亏。

二面面试官是一位不怎么慈祥的大叔,上来也不英语了,直接Chinese,先是问了我几个无关痛痒的问题,出不出国?实习时间能有多久?读研吗?等等,然后是智力题,第一道是12个球,有一个球质量不一样,用最少的称量次数把它找出来。我一开始忽略了不知道质量是轻还是重这个条件,在面试官的提醒下很快就纠正了,所以听题必须得听仔细啊。第二道题是问我如何算出南京一天消耗的矿泉水的数量==||,当时状态出来了,瞬间给出了两个方案,面试官意犹未尽,又问我有没有别的思路,我略作思考以后又给出一个,面试官满意了,就放我走了。

总的来说,感觉ebay的面试非常简单,技术方面非常看重java的基本功,我运气比较好没有被问到虚拟机、数据结构什么的,听说很多人都有被问到非常细节的java问题。智力题的话就看运气和反应了,说错了也没有关系,关键要体现出你的思维能力。

小米

面完ebay的当天晚上就是小米的笔试,来的人并不算多,现场送的大礼包非常给力,有米兔公仔、T恤和两本杂志。笔试没有智力题,全是技术题(这个风格也延续到了后面的面试中),我罗列几道印象比较深刻的题目:

1、给出5个java函数,分别是public static,public synchronized,public,public synchronized static,第五个记不清了,然后开启5个线程分别调用这5个函数,问输出的顺序。我先给出结论说不确定,然后扯了一通JVM线程调度的随机性,synchronized对效率的影响以及static的作用,也不知道对不对。

2、找出n个数里第K大的数的时间复杂度。当时思考半天,总觉的时间复杂度是能降到O(n)的,但是这样就不能对所有数排序,否则必然是O(nlgn)。最后还是没想出来,所以写了个保守的O(nlgn)。第二天面试时又被问到类似的问题,结果还是栽了,这是后话。

3、编程题第一题,实现一个数据结构来保存整数,使其能实现add,reverse和print功能。看到题目我就知道玄机在于reverse的实现,最好能使reverse的时间复杂度降到O(1)。然后我就想到使用双向链表,通过一个全局变量记录链表的方向,使头尾可以互换。这样reverse只需要取反全局变量的值就OK了。

4、编程题第二题,8皇后问题的升级版,K皇后问题。在M*N的棋盘上摆放K个棋子,使每一行、每一列、每一对角线上都不超过一个棋子。当时时间已经非常紧了,我直接写了一个brute force的递归,没有做任何优化。

考完之后感觉发挥的很不错,结果也是稳稳得进入了面试。神奇的是,面试的通知电话是在凌晨1点半打来,在那之前我已经几乎绝望了,非常不开心,正在床上用手机看小片子><。事实证明第二天的面试更加神奇。 我是早上8点的第一批面试者,走进房间后发现面试官和我一样睡眼惺忪~好吧,其实关键问题是面试官忽略了我辛苦准备的三分钟自我介绍,直接很温柔的对我说:“我们来做几道题”,崩溃啊。 第一题是要画出TCP的连接建立和释放的过程,好吧,我表示我只是大概的记得整个过程。我告诉面试官我学过但是记不大清了,面试官就问我假如我自己设计的话要怎么做,然后我就很没底的画了张图,建立的过程倒是蒙对了,释放就不行了,不过面试官也没深究。 第二个问题问我数据库索引如何建立,我又是一惊,尼玛今天这是要跪啊!我再次表示大二的数据库课程还没教到这么高级的内容,大三的课程正在学~面试官又问我假如自己设计会怎么做,我略做思考说可以用树,面试官貌似不是很满意,我立马调转思路说用哈希函数,面试官问我怎么保证效率,然后我就扯了一通自己都记不得的话。只知道到最后面试官还是不是很满意,提醒我说用B树怎么样。尼玛我一开始说的不就是树吗!没有B的树也是树啊~好吧,我略作思索,然后表示强烈赞同~然后进入下一环节。 第三个问题是找出N个数中前K大的数,尼玛这不是昨晚题目的变种吗。我很坦率的说O(n)的算法我不会,然后试探性的给出了昨晚想出的双向搜索的思路,不过面试官不是很满意,提示我说用堆来做。然后就很简单了,其实这个题目在《编程之美》上有,建议同学们多看看这些书。 第四个问题要我自己设计一个Hashtable,我提出用数组加链表的方式。面试官追问效率问题,我说尽量保证每个桶的随机性。面试官又问我假如要求Hashtable是同步的怎么办。我说给整个table加上细粒度锁。再次追问如果要求可以读和写同时进行怎么办。给出的场景是有人取到了前一个节点,这时候后一个节点被删掉了,怎么解决这个问题。这个问题上,面试官自己出现了一个错误,我抓住机会很善意的指出这个错误,并且利用java中GC的特性解决了这个问题。总之感觉在这个问题上应该是有不少加分的。 第五个问题是找出一棵二叉树中两个叶节点之间的最长路径。很简单的递归问题,当时时间不够了,面试官要我讲思路即可,我说了一下就放我走了。 一面完出门HR就告诉我10点20来二面。二面比一面短的多,依然不用自我介绍,问了我两个问题,都是编程题。 第一题是写出深度优先算法的递归和非递归版本。递归版本我不假思索的写出了,但又犯了之前的问题:代码不够简洁。面试官要求我优化到四行,好吧,我费尽心机也只优化到6行,结果面试官大笔一挥直接划掉我两行代码~唉,智商真心拙计。非递归版本一时想不起来怎么写,我问面试官是否可以使用额外的数据结构(其实我不知道要用什么数据结构),结果他提示我用栈,好吧,然后这道题就是送的了。在检查我的代码时,面试官又犯错误了,我再次抓住并且说明并且获得加分~ 第二题是写一个split函数,将字符串用','隔开并且存到一个链表中,需要处理转义字符'\'。先要我写测试用例和结果,我写了十几个。然后要我实现这个函数,由于他们下午就要走,当时已经是11点了,所以最后没让我写完就放我走了。当时心里还蛮忐忑的,因为感觉二面发挥并不好,不过中午12点半就电话通知我给offer。兴奋的要死啊,人生第一个offer啊。 稍微总结下吧,我感觉的面试要点: 1、放松心态,不要紧张,对面试官态度要谦逊,但是也不要怕指出他的错误。 2、白板编程时不光要注意正确性还要注意代码的质量。 3、遇到不会的问题不要怕,把自己的思路说出来,展现出你的思维能力,并且引导面试官给你提示,千万别冷场。 4、最好要有几个拿得出手、扯的开来的项目。 好了,基本就是这样,后面可能还会参加一些面试,写出这个面经也算积攒人品吧,HOHO。 [来源: http://blog.renren.com/GetEntry.do?id=842746686&owner=302520364 ]

This post has already been read 1647 times!

Related posts

RSS 2.0 | leave a response | trackback

发表评论