Problem: Find Median from Data Stream
Explore how to design a data structure that maintains a dynamic stream of integers and returns the median in constant time. Learn to use a dual-heap approach with max and min heaps to balance incoming numbers, enabling efficient insertion and quick median retrieval. Understand the time and space complexities involved.
We'll cover the following...
Statement
Design a data structure that stores a dynamically changing list of integers and can find the median in constant time, MedianOfStream with the following functionality:
Constructor(): Initializes an instance of the class.
insertNum(int num): Adds a new integer
numto the data structure.findMedian(): Returns the median of all integers added so far.
Note: The median is the middle value in a sorted list of integers.
For an odd-sized list (e.g.,
), the median is the middle element: . For an even-sized list (e.g.,
), the median is the average of the two middle elements: ...