题目描述
解题思路
- 由于是滑动窗口,我们首先定义一个vector
- 然后我们定义要返回的next值存储的sum
- 初始化滑动窗口的大小
- 我们每进来一个元素,idx往后面移动一位,并且sum减去idx的位数
- next计算返回sum的结果
代码实现
class MovingAverage {
vector<int> arr;
int sum;
int size;
// 滑动窗口移动到哪个元素去了
int idx;
public:
/** Initialize your data structure here. */
MovingAverage(int size) {
size=size;
sum=0;
idx=0;
}
double next(int val) {
arr.push_back(val);
sum+=val;
if(arr.size()>size){
sum-=arr[idx++];
}
return sum*1.0/(arr.size()-idx);
}
};
/**
* Your MovingAverage object will be instantiated and called as such:
* MovingAverage* obj = new MovingAverage(size);
* double param_1 = obj->next(val);
*/