一亩三分地论坛

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

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

1215Google面经,热腾腾

[复制链接] |试试Instant~ |关注本帖
kylin0425 发表于 2015-12-16 14:05:40 | 显示全部楼层 |阅读模式

2016(7-9月) 码农类 硕士 实习@Google - 内推 - 技术电面 |Otherfresh grad应届毕业生

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

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

x
今天中午的google面试,面完不爽心里出去溜了一圈,回来马上回馈论坛!

第一题: 一个List<Iterator>, 实现next和hasnext,要求next每次从其中的一个iterator中取下一个,比如,一共三个iterator,i, j k。 第一次取i1, 然后j1,k1,i2,j2,k.........题目不难,非常直观的题目。应该大家都能秒做出来。一个Map组的白人小哥(i guess)。 代码不够clean吧。
第二题:重头戏来了,我感觉这题刷新了我看的所有面经的下限。 原题描述,一个inputstream ,里面存的是integer. 然后有next()方法。 求最后10个的平均数。对,你没有看做。简单的说,就是一个linkedlist,求最后十个元素的平均数! 有木有,是不是爆炸般的简单。。。我还一开始以后是一个inputstream,每次push给你一个值,然你不断监测这个average呢。。题目简单,,自然要求代码质量非常高才行。写完bug free的代码后, 三哥哥一点点的提示我,把代码改成了不能再更精炼的地步。期间确实学习到很多。还有一点,三哥哥说,关于非法输入的返回值,错误的返回值,一定要用exception,要有meaningful的提示。我觉得很有道理。我的做法就如往常什么返回min_value啊类似的东西。还是蛮受益的,刷leetcode时候从来没有考虑过要throw exception。。

因为题简单,所以估计他们考察的东西一定不是能不能做出来,而是能不能把代码写得漂亮了。。作为一个转专业没有很坚实基础的小码农,还是很受益的。知道下一波lc该怎么刷了!

Google我估计是跪了,特此攒人品,祝我明年找实习顺利啊!今年就歇了。明年咱再战.1point3acres缃

评分

2

查看全部评分

本帖被以下淘专辑推荐:

Augustus 发表于 2015-12-16 14:27:37 | 显示全部楼层
兄弟,目测坑都满了,就算没跪估计也很难match上,节哀。。。
回复 支持 0 反对 1

使用道具 举报

guoxiaojia 发表于 2015-12-16 14:55:53 | 显示全部楼层
cool thank you
回复 支持 反对

使用道具 举报

xiaozhuxiaozhu 发表于 2015-12-16 15:02:56 | 显示全部楼层
Augustus 发表于 2015-12-16 14:27
兄弟,目测坑都满了,就算没跪估计也很难match上,节哀。。。
. visit 1point3acres.com for more.
你确定么?你现在 在pool里面么。
回复 支持 反对

使用道具 举报

ohyline 发表于 2015-12-16 15:03:40 | 显示全部楼层
Augustus 发表于 2015-12-16 14:27
兄弟,目测坑都满了,就算没跪估计也很难match上,节哀。。。

请问层主是怎么目测的?
为啥坑都满了啊 那面试还有啥意义啊。。。。
回复 支持 反对

使用道具 举报

xiaozhuxiaozhu 发表于 2015-12-16 15:10:20 | 显示全部楼层
第2题,如果是linkedlist,为什么是爆炸的简单呢。. 1point3acres.com/bbs
你可以第一边假装的把linked list traverse一边,然后counter有多少个,第2边traverse的时候,数到倒数10个数,然后开始加。
然后,刚一做完。。说,我靠,我发现,这样create extra space。我们可以不用先遍历linkedlist,我们用2个pointers, 一个fast, 一个slow,让fast比slow先走10个,于是等到fast碰倒头的时候,我们的slow正好是倒数第10个起点。然后你给他再写出这个优化了的代码。
一看才过去5分钟,赶紧说,你别急,我靠,我好像又想到一个方法,我们可以reverse linked list么,然后在从头开始扫,扫到第10个的时候停。然后刚一做完,又说,不对啊,我靠,这样,我们改变了原本的data,我们把他reverse了,看来,我们还要把他reverse 回来,这样又create extra space. 最后说,我还是觉的第2个方法好,省空间,方法看着牛。。. 1point3acres.com/bbs
所以,这题也有一些考点啊。
回复 支持 反对

使用道具 举报

xiaozhuxiaozhu 发表于 2015-12-16 15:13:04 | 显示全部楼层
lz能具体描述下第一题么?我给你加大米。
就是一个list 里面有一些elements,然后list 有个next() method. 一call next(), elements -1 ???
回复 支持 反对

使用道具 举报

New613Life 发表于 2015-12-16 17:42:46 | 显示全部楼层
Augustus 发表于 2015-12-16 14:27
兄弟,目测坑都满了,就算没跪估计也很难match上,节哀。。。

这个怎么说?
回复 支持 反对

使用道具 举报

New613Life 发表于 2015-12-16 17:43:11 | 显示全部楼层
太神奇了,我的题竟然和基本你一模一样。
回复 支持 反对

使用道具 举报

杰西Jesse 发表于 2015-12-16 22:44:33 | 显示全部楼层
感觉第一题是每次remove(0), 然后再add回去?
第二题不能看成linkedlist吧,stream过去了就不能再回头了。。显然也不能用fast和slow指针或者reverse来做吧。。可以要用个window size的buffer来FIFO最后求平均?
回复 支持 反对

使用道具 举报

杰西Jesse 发表于 2015-12-16 22:44:58 | 显示全部楼层
xiaozhuxiaozhu 发表于 2015-12-16 15:10
第2题,如果是linkedlist,为什么是爆炸的简单呢。. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
你可以第一边假装的把linked list traverse一边,然后co ...
. 鍥磋鎴戜滑@1point 3 acres
stream和linkedlist不一样。。
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
补充内容 (2015-12-16 22:45):
个人觉得。
回复 支持 反对

使用道具 举报

xiaozhuxiaozhu 发表于 2015-12-16 23:09:20 | 显示全部楼层
杰西Jesse 发表于 2015-12-16 22:44
感觉第一题是每次remove(0), 然后再add回去?
第二题不能看成linkedlist吧,stream过去了就不能再回头了 ...

singly linked list过去也不能回头,只有pointer next. doubly linked list有previous pointer.
我的回复说的是,如果是linkedlist,我说的是如果好吗?
回复 支持 反对

使用道具 举报

杰西Jesse 发表于 2015-12-16 23:17:21 | 显示全部楼层
xiaozhuxiaozhu 发表于 2015-12-16 23:09
singly linked list过去也不能回头,只有pointer next. doubly linked list有previous pointer.
我的回 ...

嗯0。0 感觉是这样。。。。没看仔细。抱歉。。。
回复 支持 反对

使用道具 举报

xiaozhuxiaozhu 发表于 2015-12-16 23:19:13 | 显示全部楼层
杰西Jesse 发表于 2015-12-16 22:44
stream和linkedlist不一样。。. 鍥磋鎴戜滑@1point 3 acres

补充内容 (2015-12-16 22:45):

我有说一样么?
为什么fast, slow的不能用,一边读stream,一边keep 2个pointers(i,j),然后把读取的stream 放到array里面。第1个i = 10的时候,j开始扫,然后的完array, j = 起点,我再走遍array,把从j开始的数加起来处以10.
reverse同样的道理,读完stream,把array的elements翻转。这个连把原来的data改变的问题,都不用考虑,这么做,不会改变原来的natural ordering.
回复 支持 反对

使用道具 举报

c212014 发表于 2015-12-16 23:30:34 | 显示全部楼层
目前在pool里,已经match了三个host,感觉坑还很多,至少在12月初,得到的消息是有些intern project还没有批下来。
回复 支持 反对

使用道具 举报

 楼主| kylin0425 发表于 2015-12-16 23:37:29 | 显示全部楼层
xiaozhuxiaozhu 发表于 2015-12-16 15:10
第2题,如果是linkedlist,为什么是爆炸的简单呢。
你可以第一边假装的把linked list traverse一边,然后co ...

拿一个queue,从左扫到右,维护一个size为10的queue。检测到null跳出,return average。应该不用扫第二遍了
回复 支持 反对

使用道具 举报

 楼主| kylin0425 发表于 2015-12-16 23:38:29 | 显示全部楼层
杰西Jesse 发表于 2015-12-16 22:44
感觉第一题是每次remove(0), 然后再add回去?
第二题不能看成linkedlist吧,stream过去了就不能再回头了 ...
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
我用的queue,维护一个size是10的queue。扫一遍就好啦
回复 支持 反对

使用道具 举报

 楼主| kylin0425 发表于 2015-12-16 23:39:16 | 显示全部楼层
New613Life 发表于 2015-12-16 17:43
太神奇了,我的题竟然和基本你一模一样。

这么开心,那你在pool里了么
回复 支持 反对

使用道具 举报

 楼主| kylin0425 发表于 2015-12-16 23:40:53 | 显示全部楼层
xiaozhuxiaozhu 发表于 2015-12-16 15:13
lz能具体描述下第一题么?我给你加大米。
就是一个list 里面有一些elements,然后list 有个next() method.  ...

是一个high level的iterator类。 这个类的constructor的参数是 List<Iterator<T>> iters. 这个新的类有两个方法,next, hasnext, 实现这两个方法。next 就是要循环的输出这个list里面每个iterator的next。不知道我描述清楚了没有。你可以看我写的那个例子

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

liruoyuxgd2006 发表于 2015-12-17 06:57:01 | 显示全部楼层
kylin0425 发表于 2015-12-16 23:37. Waral 鍗氬鏈夋洿澶氭枃绔,
拿一个queue,从左扫到右,维护一个size为10的queue。检测到null跳出,return average。应该不用扫第二遍 ...

我面这道题用了一模一样的思路
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-10 17:22

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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