一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1951|回复: 8
收起左侧

Google NYC onsite面经

[复制链接] |试试Instant~ |关注本帖
feichangh 发表于 2016-9-28 09:03:02 | 显示全部楼层 |阅读模式

2016(7-9月) 码农类 硕士 全职@Google - 内推 - Onsite |Fail在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
今年狗家二进宫,吸取了去年的经验教训今年早早就开始准备。楼主非牛人不过去年算刷过一遍题,从今年四月开始备战,上培训班提高算法和系统设计的能力;重刷lc和面经,到九月刷了190左右高频面经和两遍lc;请了模拟面试老师专门模拟狗家onsite;临近onsite请了两周假在家专门强化复习。和版上其他在职同学一样不得不说在职刷题真是很累,可惜结果还是悲剧心里有点失落,发一篇面经希望其他备战的小伙伴们加油,顺便求rp今年能刷到个好offer。. From 1point 3acres bbs

(1)白人小哥1,上来问会不会多线程,咱们写一个多线程的题吧。楼主有点懵这个真没有专门准备不过好在好在题目不难,就是设计一个producer consumer原理的数据结构,有很多个producer不停地生产带开始时间戳的task,只有一个task executor按照task的时间戳顺序执行task,设计这两个thead class。关键就是要在consumer里面设计个数据结构可以按照时间戳顺序排列接收到的task并一一执行,楼主写了个PriorityQueue并加上了BlockingQueue的特性,用wait, notify实现。写完之后小哥提出了几点,中间要避免busy waiting什么的,比如现在队里的所有task开始执行时间都小于当前系统时间,你的consumer该怎么做,我想了想也就只能sleep了这段时间差再继续。这轮答的中规中矩吧。(2)白人小哥2,LC原题361,楼主很开心的绘声绘色的默出了代码。接下来follow up是如果这个地图很大,很多点都是空的没东西,你怎么优化你的算法。楼主想了下稀疏矩阵乘法那道题就说用一个二维矩阵矩阵来记录每一行中,各个位置中不为0的列数和其对应的值,然后遍历这个新矩阵,小哥听完很开心。然而最后还剩了7,8分钟看他也没什么问题了就扯了扯project之类打发时间。
(3)白人小哥3和shadow的国人小哥1,也是一个很简单的design题,简化出来就是输入给你很多task和值,一个task可能对应多个值。然后给定一个task和值的组合,找出第一个比这个输入值小的已存值是多少。这题就是存好map后对给定task所有值简单的二分找, 这里还专门用了二分找第一个大/小的模板保证不丢值,小哥看完很开心,问了下什么时候sort,就说看put调用的多还是get调用的多,在调用的少的那个里面sort
(4)白人小哥4,LC原题317,只不过房子变成了职员和咖啡机,找到一个摆放咖啡机的地方和所有职员距离和最短,问好了限制条件比如员工可不可以跨过员工什么的开写,写好之后感觉小哥没什么问题了,只好东扯西扯了十几分钟。.1point3acres缃
(5)国人小哥5,感觉这轮答的最不好,题目很简单判断所有反对角线上的数相等,楼主这时脑子有点僵而且看到国人心里有点放松竟然写了半天涂改了好几次。Follow up是如果矩阵很大没法一次存入内存怎么办,楼主弱了开始也没想到,提示后想到就是不要一次判断一整条对角线,两行两行的读矩阵再斜着判断这一小段的对角线,看还有时间迅速写出了代码。哎现在想想真是功亏一篑。。。. 1point 3acres 璁哄潧


面试之后等了一周递送了HC,今天HR打电话说没法move forward this time了,略沮丧,不过已经感觉发挥到自己的水平了,再接再厉面接下来的公司吧!




补充内容 (2016-10-4 00:01):
Follow up一下上周和HR约了半小时聊一下feedback,他说我是positive and negative mixed review, negative 主要是问题是ask too many hints, 看起来就是第五轮国人小哥时候有点懈怠,确实是经过了提醒才写出来的

评分

4

查看全部评分

本帖被以下淘专辑推荐:

william_gong 发表于 2016-9-28 12:10:48 | 显示全部楼层
第二题follow up解法能详细说说吗,多谢!
回复 支持 反对

使用道具 举报

zwcelesta 发表于 2016-9-28 20:56:45 | 显示全部楼层
感觉楼主答的很不错。不知道楼主面试是T3还是T4。如果是T3肯定没问题吧。实在要挑也就是第四轮题目做的慢?
回复 支持 反对

使用道具 举报

liurudahai 发表于 2016-10-3 06:29:18 | 显示全部楼层
请问第五题咋做,直接一个一个元素暴力判断吗
回复 支持 反对

使用道具 举报

 楼主| feichangh 发表于 2016-10-4 00:05:05 | 显示全部楼层
william_gong 发表于 2016-9-28 12:10
第二题follow up解法能详细说说吗,多谢!

可以看看这篇贴文,类似的思路 http://www.cnblogs.com/grandyang/p/5282959.html
回复 支持 反对

使用道具 举报

 楼主| feichangh 发表于 2016-10-4 00:07:13 | 显示全部楼层
zwcelesta 发表于 2016-9-28 20:56. Waral 鍗氬鏈夋洿澶氭枃绔,
感觉楼主答的很不错。不知道楼主面试是T3还是T4。如果是T3肯定没问题吧。实在要挑也就是第四轮题目做的慢?

楼主3年SDE经验,感觉他们对experience hire的小硕的bar还是高吧
回复 支持 反对

使用道具 举报

 楼主| feichangh 发表于 2016-10-4 00:08:32 | 显示全部楼层
liurudahai 发表于 2016-10-3 06:29
请问第五题咋做,直接一个一个元素暴力判断吗

恩就是简单的一个个判断,就是考怎么取出来反对角线而已
回复 支持 反对

使用道具 举报

blactangeri 发表于 2016-11-17 12:33:54 | 显示全部楼层
lz请问第一题用PQ是把时间最早的task放在top吗

补充内容 (2016-11-17 12:38):
能不能具体说说PQ是怎么实现的  谢谢
回复 支持 反对

使用道具 举报

 楼主| feichangh 发表于 2016-11-18 00:27:14 | 显示全部楼层
blactangeri 发表于 2016-11-17 12:33
lz请问第一题用PQ是把时间最早的task放在top吗

补充内容 (2016-11-17 12:38):
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
恩后来发现可以直接用PriorityBlockingQueue,按时间顺序排序。要注意有可能来的新task可能在未来,所以每次从队列取得时候,consumer先peek一下,如果是未来的task就sleep时间差,producer放新任务的时候也是先peek一下,如果发现peek到的任务是未来任务,自己现在要放的任务比这个未来任务的时间靠前,就打断consumer的sleep。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-5 09:03

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表