BB四轮挂,求分析

最近面了BB的2019 new grad 职位,10月电面,11月底onsite。之前听学长学姐们说BB过了四轮的话问题就不大了,但是我面了四轮,感觉蛮顺,但还是挂了。在这里讲一下过程,求帮忙分析啦~~


第一轮国人小哥+白人小哥。

设计一个class实现如下功能:
void update(String companyName, int value); // 更新company对应的value为oldValue+value
Integer get(String companyName); // 获取输入company对应的value
List getKLargest(int k); // 输出value最大的k个company的列表
我用了hashMap+TreeSet,做到 O(1) get, O(logN) update, O(K) getKLargest

感觉小哥表示满意,然后问了些问题。

第二轮国人小哥+不知道哪国小哥:

考了 evaluate division。
楼主用DFS写的,因为要实现支持反复添加新的equation,而且DFS不容易出错。写完之后讨论了优化,用cache,两位表示满意。

然后国人小哥考了数据流压缩,例如 1111122222333 -> 1(5)2(5)3(3),要求时间复杂度。
使用从左到右按照1,2,4,8,16依次跳转检查重复数字个数的方法,可以做到 O(logN),小哥表示很满意。

第三轮HR:(这里感觉是重点,应该是挂在这里)
我今年9月已经毕业,但是面试的时候是十一月底,此时我已经在另外一家公司开始fulltime了。HR问了一些为什么要选择BB之类的问题,然后问我这段时间在干什么。我说我已经加入另一个公司了,因为不这么做的话我的visa会出问题。然后她问我喜欢和不喜欢现在公司的地方,我说技术上现在这家公司比较老旧,氛围上比较轻松,我期望可以比较challenging。

第四轮Manager:
中国大哥马内急,先让我写个function返回BST中第二大的数字,然后讨论如何做test。我说用计算机生成大量随机BST,他问如何生成,我答了一些但是没有答到点上。最后他说我在right track上,但是其实只要生成随机序列然后用最简单的方法把他们插入BST就可以生成随机BST了,我表示恍然大悟。
然后考了给定 f0() f1()两个函数,分别可以以相同概率返回0或者1,让我实现fn(),我答用二进制的思路。对面表示满意,然后就结束了。


整个面试过程没有遇到烙印,没有遇到很难题,自己感觉运气不错。结果整整一周以后收到据信,冻6个月,不给feedback。


我的感觉应该是回答BQ的时候踩坑了,不知道大家觉得是什么情况。

1 Like

这个不是在秋季班的Bucket专题讲过的top k stock的题目么?你用什么解的?

一个Hashmap存<company, value>, 一个treeset存<value, HashSet>

这个说法不靠谱,hiring manager 有一票否决。今年我有个学生就栽在最后的hm关的。

这两道是狗家的高频题啊

这个检查你是怎么做的?举个例子?

比如20个连续1,我先看第一个是1,然后看第二个,第四个,第八个,第16个,32个,发现32不是。然后从16开始,17,19,23… 这样

这里犯大忌了 :cold_face:

我不是在BQ的课上说了“前任攻略”吗?不要说前任坏话啊
image

第四轮你感觉你是过了?

我感觉过了啊……还挺愉快的,题目也几乎都答出来了

我看你的描述并不是很确定,首先生成大量随机BST你就没答出来。
fn() 不确定你怎么做的。

fn我说完解法他说对,都没让我写代码。

一轮做了两题,一道有followup对吧?
怎么hm 不问BQ呢?只考题目?

他问的BQ和HR的差不多,还表示了对于现在OPT不太了解,表示理解我……中国manager嘛,我就觉得还行

就是二分吧

不是二分,是1,2,4,8… 这样 probe

你没说技术陈旧的事情吧?BB可能觉得,你会不会也觉得他家技术陈旧。。。

我和HQ没说……

你可能被一票否决了 :thinking: