Search⌘ K
AI Features

Solution: Finding MK Average

Explore how to implement a custom data structure in JavaScript to calculate the MK Average from a stream of integers. Learn to maintain and rebalance three sorted lists to efficiently compute the average of the middle segment, while managing insertion and deletion in a sliding window setup. This lesson helps you deeply understand the handling of streaming data with advanced sorting and partitioning techniques for optimized performance.

Statement

You are given two integers, m and k, and a stream of integers. Your task is to design and implement a data structure that efficiently calculates the MK Average for the stream.

To compute the MK Average, follow these steps:

  1. Stream length check: If the stream contains fewer than m elements, return -1 as the MK Average.

  2. Window selection: Otherwise, copy the last m elements of the stream to a separate container and remove the smallest k elements and the largest k elements from the container.

  3. Average calculation: Calculate the average of the remaining elements (rounded down to the nearest integer).

Implement the MKAverage class

  • MKAverage(int m, int k): Initializes the object with integers m and k and an empty stream.

  • void addElement(int num): Adds the integer num to the stream.

  • int calculateMKAverage() ...