剑指 Offer II 041. 滑动窗口的平均值 #
- 标签:设计、队列、数组、数据流
- 难度:简单
题目大意 #
给定一个整数 val
和一个窗口大小 size
。
要求:根据滑动窗口的大小,计算滑动窗口里所有数字的平均值。要实现 MovingAverage
类:
MovingAverage(int size)
用窗口大小size
初始化对象。double next(int val)
成员函数next
每次调用的时候都会往滑动窗口增加一个整数,请计算并返回数据流中最后size
个值的移动平均值,即滑动窗口里所有数字的平均值。
解题思路 #
使用队列保存滑动窗口的元素,并记录对应窗口大小和元素和。
在小于窗口大小的时候,直接向队列中添加元素,并记录元素和。
在等于窗口大小的时候,先将队列头部元素弹出,再添加元素,并记录元素和。
然后根据元素和和队列中元素个数计算出平均值。
代码 #
|
|