解题思路:
使用队列动态存储滑动窗口的数值,超出队列固定长度要把队列首位的数字弹出,就像滑动窗口一样不断移动,代码如下:
class MovingAverage {
private:
int windows = 0;
double count = 0.0;
queue<int> q;
public:
/** Initialize your data structure here. */
MovingAverage(int size) {
windows = size;
}
double next(int val) {
int n = q.size();
if(n == windows) {
int num = q.front();
count -= num;
q.pop();
}
q.push(val);
count += val;
return count / q.size();
}
};
/**
* Your MovingAverage object will be instantiated and called as such:
* MovingAverage* obj = new MovingAverage(size);
* double param_1 = obj->next(val);
*/