11.18 谷歌onsite面经【已拿到offer】

原帖地址:一亩三分地

因为当年毕业的时候面过谷歌,过了phone interview就直接去MS把谷歌拒了,所以直接安排了onsite。

第一轮:
印度大叔。
问了工作经验,问得比较详细,我说的时候他一直在记录。
然后问了一个题,就是给出一堆string,按照一个自定义的字典序排列(a-z),求那个自定义的字典序。举例:bc, bbc, ab,求出来就是c-b-a。
followup是如何detect error: incomplete data and inconsistent data。incomplete指的是有的字母不知道是第几个,比如 az, bz就不知道z是怎么回事。inconsistent指的是有循环,比如算完发现a在b前,b在c前,c在a前。

第二轮:
欧洲大叔,说话挺不清楚的,不过人挺好。
先问了在C++里面vector, map, linkedlist的底层是怎么实现的,插入删除的时间复杂度,heap和BST的区别。
然后问了一个题,跟这个题一样:careercup上id为14424684。(原谅我不能发url。。。)

第三轮:
中国姐姐
第一题是给一个binary clock,hour的部分有4 bits,minute部分有6 bits,每个bit是0或者1,就是二进制.要求一共只有3个bit是1.问有哪些种valid combination。
第二题问了个design question。你有一个update,要发给远程的一堆机器,这些远程的机器在一起。问如何发过去。这里面有很多的假设和条件。比如,远程的机器很down了怎么办,发的update有data corruption怎么办,如果是bad update怎么办,server坏了怎么办,这些都是followup。

第四轮:
美国小叔
问的是design一个sparse matrix,实现两个功能,insert(int x, int y, int val) nbsp;在(x,y)插入val,和sum(int x1, int y1, int x2, int y2)左上到右下。要求sum有optimal time complexity。

第五轮:
美国小哥
就一个design question。加入google要在每天进行search的人里随机选一个发一辆特斯拉,该如何选择。听着特容易,给个随机数不就好了,结果这题说了一个小时,因为要考虑到很多scalability和performance的问题,再加上谷歌有很多data center。

面试一周以后hr通知hc通过啦~正在negotiate offer~大家好运~~