楼主: morgendave
跳转到指定楼层
上一主题 下一主题
收起左侧

Google电面 已跪

🔗
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;
        }

        @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;
            return (E) elementData[lastRet = i];
        }

        public void remove() {
            if (lastRet < 0)
                throw new IllegalStateException();
            checkForComodification();

            try {
                ArrayList.this.remove(lastRet);
                cursor = lastRet;
                lastRet = -1;
                expectedModCount = modCount;
            } catch (IndexOutOfBoundsException ex) {
                throw new ConcurrentModificationException();
            }
        }
回复

使用道具 举报

全局:
请问LZ当window向右移动的时候,怎么删去最左边的哪个?
回复

使用道具 举报

🔗
坐看云起 2015-9-18 07:34:51 | 只看该作者
全局:
mm豆 发表于 2015-4-5 06:36
这题倒是有意思,谢谢啦!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/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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