在国外一跟老外吵架口语立刻就不够用了

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
把贵司招聘信息放这里
查看: 5801|回复: 21
收起左侧

Google电面 已跪

[复制链接] |试试Instant~ |关注本帖
morgendave 发表于 2015-4-2 05:22:30 | 显示全部楼层 |阅读模式

2015(1-3月) 码农类General 硕士 全职@Google - 网上海投 - 技术电面  | Fail | fresh grad应届毕业生

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

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

x
LZ 刚刚打完google的电面就来发面经。。球攒人品。面完就知道应该要跪了。. Waral 博客有更多文章,
口音是个白人小哥,上来先问我recent employment和experience。扯了一下就进入technical问题。
问题是:给一个Iterator<Double> stream,windowsize,implement 一个movingwindow类. From 1point 3acres bbs
要求是有构造器,double next(), 以及hasNext(),要抛出异常。.留学论坛-一亩-三分地
就是个移动窗口得到平均数的题。平时没用Iterator,写的时候脑抽了基础上卡住了。最后时间用完了也没看是不是bug free。。 来源一亩.三分地论坛.
铁定跪了。。。发面经攒人品。LZ自己半路出家这种基础数据结构都没怎么仔细看过。。。迭代器基本没用过。
看了别的面经好像别人说google喜欢迭代器。。。anyway,大家都加油。


评分

2

查看全部评分

莫小乐 发表于 2015-4-2 09:11:43 | 显示全部楼层
没太明白。。请问楼主
是stream和windowsize做input吗?
next是(*stream+*(stream+1)+...+*(stream+windowsize-1))/windowsize ??
回复 支持 反对

使用道具 举报

 楼主| morgendave 发表于 2015-4-2 10:20:38 | 显示全部楼层
input是这个,但是stream是iterator,只能用next和hasNext。语言是JAVA,然后就是前面小于size个数的数也要做平均.本文原创自1point3acres论坛
next返回下一个平均。stream.next如果为空就会抛异常
回复 支持 反对

使用道具 举报

EchoO 发表于 2015-4-2 10:24:23 | 显示全部楼层
lz说的抛出异常是对moving window 还是 iterator?
回复 支持 反对

使用道具 举报

 楼主| morgendave 发表于 2015-4-2 10:30:55 | 显示全部楼层
都要抛。。。两个都抛。
回复 支持 反对

使用道具 举报

 楼主| morgendave 发表于 2015-4-2 11:07:25 | 显示全部楼层
EchoO 发表于 2015-4-2 10:24
lz说的抛出异常是对moving window 还是 iterator?

都要抛。。。两个都抛。
回复 支持 反对

使用道具 举报

EchoO 发表于 2015-4-2 21:57:41 | 显示全部楼层
morgendave 发表于 2015-4-2 11:07. 留学申请论坛-一亩三分地
都要抛。。。两个都抛。

摸摸头,是用try catch抛么?想不到有什么异常啊
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

 楼主| morgendave 发表于 2015-4-3 07:31:11 | 显示全部楼层
EchoO 发表于 2015-4-2 21:57
摸摸头,是用try catch抛么?想不到有什么异常啊

对。。。next如果为null就抛异常。我写的时候脑抽了用了stream.next()!=null,然后小哥说这时候抛异常你就不用这个条件了。。后来想了想其实用Stream.hasNext要好点。。。
回复 支持 反对

使用道具 举报

EchoO 发表于 2015-4-3 10:32:18 | 显示全部楼层
morgendave 发表于 2015-4-3 07:31
对。。。next如果为null就抛异常。我写的时候脑抽了用了stream.next()!=null,然后小哥说这时候抛异常你 ...

那也还好,还是考虑到哪些情况是invalid的,加油!
回复 支持 反对

使用道具 举报

mm豆 发表于 2015-4-5 05:11:52 | 显示全部楼层
stream,windowsize 这两个输入的平均数是不是(stream1 + stream2 + .. + streamN)/ windowsize?
回复 支持 反对

使用道具 举报

 楼主| morgendave 发表于 2015-4-5 05:31:09 | 显示全部楼层
mm豆 发表于 2015-4-5 05:11
stream,windowsize 这两个输入的平均数是不是(stream1 + stream2 + .. + streamN)/ windowsize?

对的。N=windowsize,next 输出后移窗口的平均。前面不足窗口大小的next就输出全部的平均值
回复 支持 反对

使用道具 举报

mm豆 发表于 2015-4-5 05:42:31 | 显示全部楼层
morgendave 发表于 2015-4-5 05:31
对的。N=windowsize,next 输出后移窗口的平均。前面不足窗口大小的next就输出全部的平均值
. 留学申请论坛-一亩三分地
前面不足窗口大小的next就输出全部的平均值 的意思是在next函数中, if(stream < windowsize) return 平均值 else return stream, 是这个意思么?
回复 支持 反对

使用道具 举报

 楼主| morgendave 发表于 2015-4-5 05:49:03 | 显示全部楼层
mm豆 发表于 2015-4-5 05:42
前面不足窗口大小的next就输出全部的平均值 的意思是在next函数中, if(stream < windowsize) return 平均 ...

比如说windowsize是4,那么stream一个个往后读,前三次next分别输出1,(1,2)平均,123平均。后面开始输出4个数的平均,窗口向后移动一个数。
回复 支持 反对

使用道具 举报

mm豆 发表于 2015-4-5 05:56:44 | 显示全部楼层
morgendave 发表于 2015-4-5 05:49
比如说windowsize是4,那么stream一个个往后读,前三次next分别输出1,(1,2)平均,123平均。后面开始输 ...

你的意思是时说如果stream的个数小于windowsize,那么输入为次数的平均值,比如 1, (1 + 2)/2, (1 + 2 + 3)/3;
如果次数大于windowsize, 输出(stream1 + stream2 + stream3 + stream4)/windowsize。是这个意思什么?
窗口向后移动一个数,是什么意思?
回复 支持 反对

使用道具 举报

 楼主| morgendave 发表于 2015-4-5 06:05:27 | 显示全部楼层
mm豆 发表于 2015-4-5 05:56
你的意思是时说如果stream的个数小于windowsize,那么输入为次数的平均值,比如 1, (1 + 2)/2, (1 ...

对。移动就是iterator的next实现。比如1234后是2345.。其实就是强行让做iterator然后我正好不太会。。。。
回复 支持 反对

使用道具 举报

mm豆 发表于 2015-4-5 06:36:56 | 显示全部楼层
morgendave 发表于 2015-4-5 06:05
对。移动就是iterator的next实现。比如1234后是2345.。其实就是强行让做iterator然后我正好不太会。。。 ...

这题倒是有意思,谢谢啦!Arraylist的iterator的java实现,希望你能有用
    private class Itr implements Iterator<E> {
        int cursor;       // index of next element to return
        int lastRet = -1; // index of last element returned; -1 if no such
        int expectedModCount = modCount;
. 留学申请论坛-一亩三分地
        public boolean hasNext() {
            return cursor != size;
        }
. 围观我们@1point 3 acres
        @SuppressWarnings("unchecked")
        public E next() {
            checkForComodification();
            int i = cursor;
            if (i >= size)
                throw new NoSuchElementException();
            Object[] elementData = ArrayList.this.elementData;
            if (i >= elementData.length)
                throw new ConcurrentModificationException();
            cursor = i + 1;. visit 1point3acres for more.
            return (E) elementData[lastRet = i];
        }

        public void remove() {. 一亩-三分-地,独家发布
            if (lastRet < 0)
                throw new IllegalStateException();
            checkForComodification();

. From 1point 3acres bbs            try {
                ArrayList.this.remove(lastRet);
                cursor = lastRet;
                lastRet = -1;
                expectedModCount = modCount;
            } catch (IndexOutOfBoundsException ex) {. Waral 博客有更多文章,
                throw new ConcurrentModificationException();
            }
        }
回复 支持 反对

使用道具 举报

宝贝忆彼岸 发表于 2015-9-17 04:31:50 | 显示全部楼层
请问LZ当window向右移动的时候,怎么删去最左边的哪个?
回复 支持 反对

使用道具 举报

坐看云起 发表于 2015-9-18 07:34:51 | 显示全部楼层
mm豆 发表于 2015-4-5 06:36. more info on 1point3acres
这题倒是有意思,谢谢啦!Arraylist的iterator的java实现,希望你能有用
    private class Itr impleme ...

应该没这么麻烦吧,直接用一个队列和一个int老保存window内的值和总和就可以吧。。。。
回复 支持 反对

使用道具 举报

xman 发表于 2015-12-28 22:09:24 | 显示全部楼层
http://www.ibm.com/developerworks/cn/java/j-5things1/
回复 支持 反对

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-5-23 17:20

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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