346. Moving Average from Data Stream
做题历程:
- 应该做了不止第一次了,本次大概耗时10分钟,独立解出
本题算是比较简单的。大概就是两点:1.用一个queue来保持3个元素,然后用1个变量来存储queue里面所有元素的和即可,代码如下:
class MovingAverage {
public:
/** Initialize your data structure here. */
MovingAverage(int size) {
sz = size;
sum = 0;
}
double next(int val) {
sum += val;
my_queue.push(val);
if (my_queue.size() > sz) {
sum -= my_queue.front();
my_queue.pop();
}
return static_cast<double>(sum) / my_queue.size();
}
private:
int sz;
queue<int> my_queue;
int sum;
};
/**
* Your MovingAverage object will be instantiated and called as such:
* MovingAverage obj = new MovingAverage(size);
* double param_1 = obj.next(val);
*/