Search⌘ K
AI Features

Problem: Moving Average from Data Stream

Explore how to implement a MovingAverage class in JavaScript that calculates the sliding window average for incoming integer streams. Learn to use a queue data structure with a running sum for efficient real-time computation, optimizing to O(1) time complexity for each new value. This lesson helps you apply queues to maintain fixed-size windows and master an important data stream problem.

Statement

Given a stream of integers and a window size, calculate the moving average of all integers within the sliding window.

Implement the MovingAverage class:

  • MovingAverage(int size): Initializes the object with the window size size.

  • double next(int val): Accepts a new integer val from the stream and returns the moving average of the most recent size values seen so far.

Note: If fewer than size values have been received so far, the moving average is computed over all the values received up to that point.

Constraints:

  • 11 \leq size 1000\leq 1000

  • 1 ...