一亩三分地论坛

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

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

[找工就业] Google onsite跪经

[复制链接] |试试Instant~ |关注本帖
baiery 发表于 2016-3-1 23:50:37 | 显示全部楼层 |阅读模式

2016(1-3月)-[16]EE硕士+<3个月短暂实习/全职 - 猎头| 码农类全职@Googlefresh grad应届毕业生

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

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

x
楼主上上周三面的onsite,上周四进的hc,这周一被通知hc没过,虽然有心里准备,但是听到消息的瞬间还是有些晕眩,作为dream company如此挂掉心中有很大的遗憾,只能来年再战,下面说正事。. more info on 1point3acres.com
onsite是在Mountain View的办公室,据说是一个新的办公室,所以装修设计什么的都很漂亮,一共4轮技术面加一顿午饭:.鏈枃鍘熷垱鑷1point3acres璁哄潧

  • 第一轮说是新定义一个Iterator的class,constructor的输入给a list of Iterators,要求写这个class的两个method,hasNext()和next(),规则是按照list的顺序逐个输出list里每个Iterator的第一个元素,然后这样循环把所有的元素都输出出来,不太好描述,举个例子:比如给的list是It0->It1->It2,It0的元素有a0, a1, a2,It1的元素有b0,It2的元素有c0, c1,那么最后新的Iterator的输出为a0, b0, c0, a1, c1, a2。我的做法是用一个queue来按顺序存所有的Iterator,每次poll出一个Iterator,如果hasNext就输出相应元素(next)并再把这个Iterator再存到queue尾巴上,如果没有next了就直接扔掉。
  • 第二轮先问一个maze如何表示,我说用2维数组,0表示不通,1表示通,然后问设定了起始位置和最终位置,如何走迷宫,我说用DFS,然后再问如何找到shortest path,这里我就懵了,几经提醒知道要用BFS,最后再问现在不把矩阵当maze,当成map,所有联通在一起的1共同表示一个小岛,问map中有多少小岛。然后我仍然用BFS,但是每次得到一个小岛后我认为要 重头扫整个map直到遇到第一个没有访问过并且是1的位置,后来面试官再提醒说不需要,只需要直接继续向后扫就行,因为前面的1肯定都访问过了,0的话根本不用理会,这轮表现最差,感觉会死在这一轮。
  • 第三轮给一个n*n的矩阵,然后要求玩一个merge游戏,具体玩法是在某个位置上放上指定数字,例如放上1,然后如果这个位置的1周围可以有另外2个1连通在一起,那么就消掉那两个1并且把该位置的1加1,也就是变成2,如果此时这个位置的2还可以有2个2连通,那么继续消掉另两个2,把该位置的2加1,这样下去直到没有相同的3个数字连通在一起,所谓连通可以是这个位置有两个邻居都为当前数字,或者这个位置的一个邻居是该数字,这个邻居还有个邻居是该数字,另外如果该位置同时有多个连通,这些连通都要消掉,该位置的数字仍然只加一次1。这题我就是直接BFS,并且用一个相同size的矩阵用于mark是否访问过。因为连通只限定2个,所以bfs只需要访问到第二层就可以了。之后follow up问如果是m个数字构成的连通该如何,那就访问到第m-1层,之后问了不同情况的时间复杂度。
  • 最后一轮是个设计题,说是有个disk,这个disk有一个service用于让外面的client访问这个disk,现在要求该disk每秒被访问的次数不可以超过100,然后每个client也有一个访问限额,如果每秒达到了该限额,就要停止该client的访问并且对该cilent返回error。一开始我理解为如果disk的总访问量到达了100,那么剩下的访问还要保留,等到下一秒再执行,所以我提出用queue,但是后来面试官说多出来的访问就直接忽略掉,所以就不需要queue,那就直接用一个counter来计数,然后用一个timer计时,如果当前的timer超过了1秒,那么就清零重新计时,然后我把client设置一个类,保存其访问限额和访问的counter,实现只要求写了伪代码,所以没有很复杂的数据结构,只用了1个循环,每当有访问到来时,先查看当前timer,如果超过1秒,总的counter和每个client的访问counter全部清零,否则再看总的counter,如果到达了100个,那么忽略到达的访问,再否则如果该访问的client到达了访问限额,就对该client返回error并忽略该访问,再否则,就可以正常访问了,总counter和该client的访问counter均加1。这题因为是设计题,一直不断的和面试官沟通细节,防止出现一开始的误解,最后勉强让她觉得可以了,但是仍觉得没有答得特别顺。




其实面完第二轮我就觉得凶多吉少了,第二轮一开始几乎完全没有想对方向,第一三轮回答的是比较好的,最后一轮因为是设计题,一直不停地沟通然后讲出自己的设计,我也不知道究竟如何,所以想来第二轮是致命伤,这也提醒自己的确是实力不济,基础不牢,还有很长的路要走。楼主情绪低落了半天后去了趟gym又活过来了,既然目前这个阶段它不属于我,我也不应该将自己桎梏于无谓的烦恼,积极努力健康规律的生活才是接下来要做的事(面经是刚面完后怀着激动的心情写的,可能表述有些不清楚的地方,我的解法可能也有问题,欢迎大家一起讨论研究)

评分

2

查看全部评分

Ulu2005 发表于 2016-3-2 00:03:57 | 显示全部楼层
赞一下楼主心态。第二题貌似就是leetcode的number of islands?
回复 支持 反对

使用道具 举报

 楼主| baiery 发表于 2016-3-2 00:07:10 | 显示全部楼层
Ulu2005 发表于 2016-3-2 00:03
赞一下楼主心态。第二题貌似就是leetcode的number of islands?

还真是,是我自己挫了没有做到
回复 支持 反对

使用道具 举报

Ulu2005 发表于 2016-3-2 00:10:09 | 显示全部楼层
baiery 发表于 2016-3-2 00:07
还真是,是我自己挫了没有做到

果然刷题不能心存侥幸 = = 同学之前面狗家on campus遇到一道leetcode原题,结果之前刷题的时候觉得太难没有去做..就跪了
回复 支持 反对

使用道具 举报

 楼主| baiery 发表于 2016-3-2 00:12:16 | 显示全部楼层
Ulu2005 发表于 2016-3-2 00:10.鏈枃鍘熷垱鑷1point3acres璁哄潧
果然刷题不能心存侥幸 = = 同学之前面狗家on campus遇到一道leetcode原题,结果之前刷题的时候觉得太难 ...

恩恩是的~以后如果要跳槽看来还是要把题目重新全部好好刷一遍
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-9 01:13

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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