Search⌘ K
AI Features

Problem: Find Median from Data Stream

Explore building a data structure using max and min heaps to efficiently find the median from a dynamic stream of integers. Learn how to balance two heaps in Java to maintain quick access to the median and understand the time and space complexity of insert and find operations.

Statement

Design a data structure that stores a dynamically changing list of integers and can find the median in constant time, O(1)O(1), as the list grows. To do that, implement a class named MedianOfStream with the following functionality:

  • Constructor(): Initializes an instance of the class.

  • insertNum(int num): Adds a new integer num to 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., [4,5,6][4, 5, 6]), the median is the middle element: 55.

  • For an even-sized list (e.g., [2,4,6,8][2, 4, 6, 8] ...