12.01 Google两轮电面

原帖地址:一亩三分地

上周二面的,身边的同学之前面几天就有消息,我一周多没有消息,本来以为基本悲剧了,昨天突然收到邮件说进pool了。。。求match,求组收留。

赶快来回馈地理。
回忆下我的两轮面试,题目都不难,但是都让做test case。
第一轮:给一个list,存的是iterator,实现一个类implement Iterator,实现它的next和hasNext,用queue实现了。。。(需要throw exception)。follow up,再实现它的previous方法,刚开始题意理解错了,后来才明白要把当前位置的‘指针’往前移,不是单单返回previous的element。。这样的话,我觉得可以用double-linked list 实现,但是最后没有写完。。当初感觉会跪在这一轮。

第二轮:给一个inputstream, 它只有一个方法next,这个inputstream 里面装的都是int。。 需要返回最近 3个int的平均值。。。比如 它的next按照顺序分别是1->2->3->4->5,那就返回3, 4,5 的平均值。。感觉还是用一个queue实现就可以。。。。follow up, 返回最近的n个数的平均值,,,,follow up: 如果n非常大怎么办,刚开始以为要考虑int overflow的问题,那我就把累加所有值的过程用数学公式转换成来一个新的方程,求当前所有值的平均值。。在hint下,才发现自己程序实现上有一个可以优化的地方(不用管int,定义成long就可以)

在学期结束的时候,终于有些收获,希望match过程顺利。。