/** Initialize your data structure here. */ publicMovingAverage(int size){ // 初始化 this.arr = newint[size]; }
publicdoublenext(int val){ tempSize++; sum += val; // 计算游标 int index = (tempSize - 1) % arr.length; // 将原数据从窗口中排除 if(tempSize > arr.length){ sum -= arr[index]; } // 游标更新为新数据 arr[index] = val; return (double) sum / (tempSize > arr.length ? arr.length : tempSize);
} }
/** * Your MovingAverage object will be instantiated and called as such: * MovingAverage obj = new MovingAverage(size); * double param_1 = obj.next(val); */