Moving Average from Data Stream

public class MovingAverage {
    /**
     * Initialize your data structure here.
     */
    int id, size;
    double[] sum;

    MovingAverage(int s) {
        id = 0;
        size = s;
        sum = new double[1000000];   //this is not final version
    }

    public double next(int val) {
        // Write your code here
        id++;
        sum[id] = sum[id - 1] + val;
        if (id - size >= 0) {
            return (sum[id] - sum[id - size]) / size;
        } else {
            return sum[id] / id;
        }
    }
}

最后更新于

这有帮助吗?