Solution: Find Median from Data Stream
Explore how to design a data structure that dynamically tracks the median from an ongoing stream of integers using two heaps. Learn to implement a max-heap for smaller values and a min-heap for larger ones to efficiently insert numbers and compute the median in constant time. Understand the time and space complexity of this heap-based approach and how to maintain balance between the heaps for accurate median calculation.
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: .
Constraints:
...