空气床过经

OA:CSV parser,15min followup call,第二天recruiter联系onsite

onsite:2轮coding:大文件找median,外星人字典
1轮系统设计:翻译系统。就是把整个构架design一下 然后会设计一些implementation details 然后还有一点DB design。还有就是可能会需要根据一些use case修改 再就是一些cache什么的
1轮experience
2轮cross functional,就是BQ 和 core values

报个挂经

通过内推拿到了面试,HR告知可以OA+电面或者2个电面,我选择了前者。

OA是12,题目是Round Prices那道题,做完之后HR马上约了几天后有一个15分钟的电话follow up,follow up的内容就是简单让我重复一下我的思路和做法,没有问follow up questoin.
电面是一位超级好的国人大哥,题目是Combination Sum的那道题,要求是用最少的元素组成target,比如给一个输入 [1, 2, 3, 4, 5], target = 9. 组合方式可以是 2+2+2+2+1, 3+3+3, 4+5,最少的话就是4+5只需要两个数字,返回2就行。可以用搜索做,可以用无限背包DP做。用DP做的,但是写的不是很流畅,非常nice的国人大哥也给了提示。
Onsite 2轮cross functional + 2轮coding + 1轮system design + 1轮dive deep简历

第1 & 2 轮 : Cross functional就是纯聊天面,问到的问题有:

  • 为什么要来Airbnb
  • 过期的经历里你有什么经历是感觉特别自豪的(为社会做过啥贡献)
  • 有没有给人什么feedback,主要侧重于不同意见的feedback(应该是考察意见不同的时候怎么处理)

第3轮 Coding 国人小哥

  • 问题是滑雪问题,本质是一个有向图的问题,包装了一层滑雪的外壳。
  • 背景是一个滑雪选手从高山上往下滑,会遇到不同的checkpoint,每一个checkpoint有自己的point,然后每个edge有distance。经过每一个checkpoint所得到的score是通过一个包含point和distance的式子算出来的(比如2 * point + distance之类的)。最终求从最高点往下滑能得到的最大score是多少,用BFS就可以。
  • 类似下图,从A出发,最终可以到 I 或者 J,求到 I 或者 J 能得到的最大score是多少。

    滑雪这个题bfs会被迫重复走很多path,可以按照topo排序来做就行了到达 O(E+V)
    或者另一个做法是每个值去负,然后dijkstra。。不懂得同学可以看看CLSR,为什么dijkstra处理不了最大问题,只能最小。还是那句话,这个题直接暴力bfs有可能成为挂点

第4轮 Coding 国人new grad小哥 + 外国妹shadow

  • 问题是Sliding Puzzle那道题。board的表示要自己定义,然后要自己写怎么shuffle board,然后输出boolean值表示是否可以恢复到需要的样子。

第5轮 System Design 国人大哥

  • 设计RSS Feeder,主要是focus在数据库的设计。User表,Provider表,News Feed表之类的。
  • 其中问了一些周边问题,比如说User表的password怎么存,如果数据库被脱裤了,hacker有可能会用rainbow table attack把常用的密码的hash值反向解析出来,怎么预防这种情况。应该回答Salted Password Hashing,把用户的password加盐然后再hash存起来。
  • 另外一个问题是User看过的news feeds就不再展示,怎么实现。
  • Pull model怎么快速取某个用户的news feeds。我提出的是取回来,本地merge。然后国人大哥居然说用IN语句,select * from news_feed_table where provider_id IN (select provider_id from user_provider_table where user_id = 5) orderby created_at limit 100; 我说本地可能会更快,老师明明说In并不能加快Sql查询啊。但是大哥说在数据库端用in并且排序会更快。

第6轮 Dive Deep Manager

  • BQ一堆:最challenging的经历,工作中学到什么,有不同意见怎么处理
  • 然后就是自己选一个project说说架构,怎么设计的,有什么trade off等等。
    总结:
  1. 他们家的onsite的体验还是不错的,如果你是从外地飞过去的话,他们家跟一个叫Pana的公司合作,那个公司就是相当于你的旅行管家,跟你沟通机票、住宿、报销等事宜。那个公司随时可以online chat,回复很快。
  2. Airbnb家面完onsite不给feedback,这个有点受不了。
  3. Airbnb里的亚裔比例真的很高,面试我的居然5个中国人,我了个天。

楼主你好,想问下他们家phonescreen的test cases是已经写好了, 还是自己当场写? 在这先谢谢啦

这个取决于面试官,但应该大部分都是需要我们自己写 test case。

Airbnb 一道Onsite难题

给n个长度是k的字符串,问其中是不是有两个字符串相差只有一个字符。

Example 1:
Input: [“abc”, “xyz”, “abd”]
Output: true
Explanation: “abc” and “abd” only differ by 1 character.

Example 2:
Input: [“abc”, “def”, “xyz”]
Output: false

Example 3:
Input: [“abcd”, “bbbb”, “abxd”, “cccc”]
Output: true

讨论了蛮久,一开始想到的方法是hashtabI e,把abc变成ab_, a_c, _ac来hash,但是这样会塞进去O(nk^2)个元素。面试官觉得可以更快。
然后想的是排序了再比,但是这样最坏情况下的复杂度没有改善。
最后面试官比较满意的办法是,正向建一个trie,反向建一个trie,然后两边连起来,中间隔着一个字符这样。然后判断这个图是不是联通,复杂度可以降到O(nk),面试 官也认可了。

空气床面试桂晶
这次是真的服了
第一题 滴水,国人妹妹,人很好,无悬念,提前完事,闲聊几句
第二题文件系统,白人面,亚裔女pair。白男全程diao脸。第一步,实现。写一步执行一步,没有问题。因为我去了一下厕所没有时间完成第二部monitor changes, 让我说说。于是跟我说不用写了,给他说一下。然后我就写了一半停下来,跟他说。结果上当了,反馈说我的code不能compile,我日了
午饭,国人小兄弟,人很nice,
第三题,新闻订阅。估计是个墨西哥的傻逼。罗德里戈。全程打断。这笔什么都他妈不懂,全程屁话。最后跟我说据他所知redis不可以做replicate。我日了狗了,怎么会 有这种傻逼。最后搞得我性起,只好硬怼。现在想来这笔也就只懂一点SQL,让我加几个index.
第四题,估计台湾meimei,说project experience,鄙人多年hands on。无悬念没出门就投诉了那个墨西哥傻逼。结果被白人拒了。真他妈世事难料
不要觉得人家不知道,abb华人确实挺多,那帮逼估计联合起来卡中国人。
最后一点感想:
1.现在的面试都这样变态了吗?制造问题然揪住不放,完全不看experience和思路。
2.大公司往往牛人比较多,但是傻逼也是正态分布的