346. Moving Average from Data Stream


做题历程:

  1. 应该做了不止第一次了,本次大概耗时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);
 */

results matching ""

    No results matching ""