剑指 Offer II 041. 滑动窗口的平均值

剑指 Offer II 041. 滑动窗口的平均值:

题目链接 :剑指 Offer II 041. 滑动窗口的平均值

题目:给定一个整数数据流和一个窗口大小,根据该滑动窗口的大小,计算滑动窗口里所有数字的平均值。
实现 MovingAverage 类:
MovingAverage(int size) 用窗口大小 size 初始化对象。
double next(int val) 成员函数 next 每次调用的时候都会往滑动窗口增加一个整数,请计算并返回数据流中最后 size 个值的移动平均值,即滑动窗口里所有数字的平均值。

思路:

1、填入元素控制数量在窗口限制内

2、每次调用next()函数即计算当前窗口内元素的平均值返回

AC代码:

class MovingAverage { 
    Queue<Integer> qe;
    int size;
    double sum;
    /** Initialize your data structure here. */
    public MovingAverage(int size) { 
        qe=new LinkedList<>();
        this.size=size;
        sum=0;
    }
    
    public double next(int val) { 
        sum+=val;
        if(qe.size()==size)
        { 
            sum-=qe.poll();
        }     
        qe.offer(val);
        double ave=sum/qe.size();
        return ave;
    }
}

/** * Your MovingAverage object will be instantiated and called as such: * MovingAverage obj = new MovingAverage(size); * double param_1 = obj.next(val); */




    原文作者:抹茶2077
    原文地址: https://blog.csdn.net/weixin_45750855/article/details/120836320
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞