Javascript program Moving Average from data Stream Leetcode solution
var MovingAverage = function(size) {
this.size = size;
this.slidingWindow = [];
this.sum = 0
};
/**
* @param {number} val
* @return {number}
*/
MovingAverage.prototype.next = function(val) {
this.slidingWindow.push(val);
let slidingWindowSize = this.slidingWindow.length;
if (slidingWindowSize this.size) {
this.sum += val;
return this.sum / slidingWindowSize;
} else {
let element = this.slidingWindow.shift();
this.sum += val
this.sum -= element;
return this.sum / this.size;
}
};
Time Complexity : O(n)
Space Complexity : O(n)
Space Complexity : O(n)