Airbnb面经(下篇)



  • **不多说,小菜鸟继续耕耘面经!大家一起加油!**↖(^ω^)↗

    面经1
    网上海投的简历, 大概隔了3、4天, recruiter联系, 约电面。

    • Phone Screen:
      中国小哥。 codepad需要编译跑test。 leetcode251 + remove(). 地里面经到处都是, 不多说了。 面之前刷过, 有一个小bug, 无伤大雅。小哥人挺nice。电面后第二天, recruiter联系 约onsite,多次提示, 会有两轮cross functional, 会非常重要。
    • Onsite:
      很多人说airbnb的office特别impressive,我去了以后,一点没有被impressed啊, 没觉得哪牛逼。说面试过程之前, 我强调一下, airbnb是我所有面试公司中, 印度朋友是相对最少的, 漂亮的中国小姑娘最多的,最漂亮的。airbnb真是一个民主,多样的好公司。面试一轮project deep dive, 两轮上机编程, 两轮系统设计, 两轮cross function。project deep dive, 白人大哥。 没啥说的, 我做过的所有project 我光做presentation就基本做了不知道多少遍。 deep dive 我只怕他问的不够deep。
    • 上机一:
      中国女生。 问题地里面经也提到过 (找不到link了),一个有向图。 求出最少需要的点能遍历整个图。 我之前看面经想过这个题, 但是关键是, 尼玛想的是有bug的。 我一开始拿到题,说了思路,就是找所有in degree 是0的点放进结果,然后bfs/dfs, 如果有环,就随机拿一个放进结果,然后bfs/dfs, 直到遍历所有的点。 面试官想了想, 感觉哪有问题, 但是也想不出来, 就说行吧。 然后我就开始写, 尼玛写的前十五分钟里, 她一直在想corner case 。 然后我写了一大半了, 她说, 你这个思路有bug, 也就是下边这种情况:

    0_1482289774155_Case.PNG
    结果可想而之, 没写完。

    • 上机二:
      亚裔小哥,这里第一题 : 我有一个感兴趣的城市列表,我的朋友们每个人也有感兴趣的城市列表,如果朋友和我感兴趣的城市占总共他总城市个数的至少一半,就输出他的名字,要求按照相同城市个数排序。第二问输出的名字对应相同城市名字。
      上来给我一张letter size的纸, 上边写满了题目描述。 面经看过, 但是并没什么用 没写完。 本人用的c++, 就是个死。input是raw string 模拟document。光parse string, 我就写了好几十行。 我感觉用c++ 就是默写, 都写不完。 手指头都打酸了。 最后compile的时候 一屏幕的error。 我懒得debug了, 就直接说, 哥哥我用c++编不完了, 我们来聊聊吧, 面试小哥说, 嗯 c++太吃亏。 然后我面道这里基本上知道没啥希望了。

    抱怨一句, 这种面试有什么意义? 来了给你一道题,面试官就自己该干嘛干嘛, 你就像考试一样写。以后根本不需要面试官了啊, 现场做OA不就行了。。。无语。
    午饭。就早上面试情况而且听说airbnb会面到一半 如果feedback不好就直接赶出来了。 我特怕连饭都不给我吃。 结果来的是个中国小哥带我吃饭不是hr, 直到没被轰出去,我就屁颠屁颠吃饭去了。 中国小哥和我是校友,非常nice 中午吃饭中国小哥和我推心置腹的聊了很多。 具体内容就不说了,都是特别推心置腹到达灵魂深处的那种。没有心情品尝食物。
    下午系统设计一, 亚裔大哥。一脸严肃 问题是设计key value pair。我就按照big table的思路说。 大哥一直在质疑。 我就一直在defense。具体的内容记不清了, 感觉说的过程中不是很顺, 只记得在airbnb那么小的一个面试的屋子里 (放了一个桌子两个椅子, 站不下第三个), 有人放了一个屁, 刚吃完饭, 臭的我想吐。 当时屋子里只有我和他, 并不是我。

    然后是cross functional 两轮, 一个是marketing 的白人小哥, 一个是culture team的白人美女, 有点像taylor swift, 聊天过程中知道她之前是fashion industry的。 全程高能。 中心思想就是我爱旅游, 我喜欢不同的文化, 世界上的恐惧都是不了解造成的。(我确实爱旅游, 我确实喜欢不同文化) 然后airbnb 的core value也要看看, 把自己的经历往那上扯就好。 这两轮是我这一天airbnb面试答的最好的两轮。。。。哎。。。

    最后一轮系统设计,中国小哥 new feeds。 地里面经也有。 感觉中规中矩。

    面试两天后 recruiter 告诉我挂了。 feedback是cross functional 两轮表现极好, tech 面试都不好。

    说说对airbnb整体感受, 年轻, 好看(人长得)。 然后regarding 面试, 题是最难得, 但是题库不大, 地里基本上都覆盖了, 20多到题。 有些题目对语言要求很高, 要是用c++ 我觉得基本上写过原题都在30多分钟里写不完(面试45分钟, 扯淡得十多分钟, 真写代码也就30分钟) 可能python是最占便宜。 面试过程完全不在乎你怎么写 用什么写什么思路, 只有写出来能跑起来没错就行, otherwise, they don’t give a shit. 我个人极为不认同这样的面试理念。我不知道这种级别的题, 如果没见过原题, 有多少人能现场写出来?他们是在找面经准备的全的candidates么?

    面经2:
    题目都很简单,不得不说ab家HR和interviewer都很nice,效率高而且严谨。

    • Phone Screen:
      是地里有的面经题,因为见到过所以很轻松就过了,题目如下:
      /*
      Given an array of numbers A = [x1, x2, …, xn] and T = Round(x1+x2+… +xn).
      We want to find a way to round each element in A such that after rounding we get a new array B = [y1, y2, …, yn] such that y1+y2+…+yn = T where yi = Floor(xi) or Ceil(xi), ceiling or floor of xi.
      We also want to minimize sum((x_i-y_i)^2)
      */
      需要注意一点的是在对每个xi进行round时可以自己选择round up或者round down,求T的时候是四舍五入进行round的,其他的就没什么,正常每个元素向上取整然后补差就好。
      楼主面的时候被测到了一个corner case,100.0的round up和round down都是100,需要特殊处理一下,测出bug后花了大概两分钟改了过来。
      改完跑通还剩5分钟,和面试官聊了聊,发现是CMU的校友,聊得很开心。
    • Skype:

    • Round 1 : 经典老题,text justification,LC68,但是条件做了细小的改动,要求只有当每行是一个单词时左对齐,其余的每行全都均匀分布,需要注意一下判断条件。
      原题:https://leetcode.com/problems/text-justification/

    楼主一开始没仔细读题,看完之后照着之前刷LC得思路跟面试官讲了一下,因为只是细节有区别面试官也没发现,就直接开写,写一半的时候面试官对我的判断条件表示没看懂,我又看了一遍题目发现细节有区别,改了过来继续写。写完之后run代码,因为楼主sb用了新买的键盘,手感和MacBook键盘不一样,总是按不动那个‘=’键,出了好几个漏等号的typo,然后一个个改了过来,继续run,bug free。还剩5分钟,和面试官GG聊了聊,问了一下ab家主要用什么语言,是否建议我寒假自学一下我之前没接触过的ruby之类的,感觉聊得还行,看面试官也是笑着聊天的,聊了一会儿到时间,结束。

    • Round 2 :
      两个人,一个interviewer一个shadow,一上来这个阵势就搞得我有点懵,然后interviewer自我介绍,然后出题,楼主一看艾玛又是老题,alien dictionary,LC269。
      https://leetcode.com/problems/alien-dictionary/ (需要解锁题)

    于是楼主就要了个example跟面试官聊了下思路,然而没想到!面试官定的规则跟楼主之前做alien dictionary时候的规则不一样,楼主比她多做了两个假设,虽然其实也没区别,不过是楼主的解是她的解的一个子集而她正好是只需要我输出一个可行解就好,但在这个问题上我们讨论了好久,我说算法的时候她一直在说我做了多余假设,不能这样,于是我就只好停下来问她的意思。理解了之后发现她的条件其实比我的约束条件更少,其实更好写了,本质上还是拓扑排序。但这个时候楼主已经很紧张了,时间只剩半个小时,开始撸代码,一边写一边跟她讨论是不是她要的题意。写完之后run,因为过于紧张和键盘坑爹的缘故,又是好多typo,少打了‘=’啊,containsKey拼成了comtainsKey或者containKsy啊之类的,楼主尴尬癌都犯了,只能一个个改,改完之后run,bug free。interviewer问我能不能想到什么corner case测一下,我想到了两个,一个是出现两个相同字符串,一个是图里成环,前者我有把握程序能跑过,后者写的时候没想那么多不敢测,就只说了第一个,测试,通过,面试官说,great,你的程序在我看来是正确的,只是在测corner case的时候因为你用了拓扑排序,所以需要考虑下图里成环的情况。不过也没测,可能她觉得是对的不用测了,就开始聊天,又聊了五分多钟,关于ab都用什么语言或者工具啊,我用不用提前学点什么东西啊之类的,聊了一会儿到时间,结束。

    整个面试下来的经验就是,面试的时候千万别紧张!千万不要紧张!楼主就是因为太紧张了所以打了好多typo,面试官在Skype那边都看不下去了,一直安抚我说,take it easy,don’t be so nervous,其实两轮Skype下来虽然遇到了改细节条件的事情,但是算法思路是不变的,只要见到过就一定能给出bug free的代码,楼主的紧张除了打出一堆typo之外也没什么别的帮助,所以大家面试的时候千万不要紧张!

    面经3:

    直接上题:
    [size=14.6667px]实现分页显示。给了以下一些输入数据,要求将以下行分页显示,其中每行已经按score排好序,分页显示的时候如果有相同host id的行,则将后面同host id的行移到下一页。
    [size=14.6667px]

    [size=14.6667px]输入
    [size=14.6667px]1. 一个根据score已经排序的string数组
    [size=14.6667px]2. 每页显示的个数

    大家可以加入我建立的CS找工作群哦,之后会在群里分享工作信息、面经信息以及交流刷题心得,大家相互鼓励,也欢迎找到工作的朋友一起分享信息哦!
    之后会继续搬运面经给大家哒~

    0_1482290631981_QR.jpg


登录后回复
 

与 BitTiger Community 的连接断开,我们正在尝试重连,请耐心等待