text class MedianFinder: maxHeap = empty max-heap // smaller half minHeap = empty min-heap // larger half function addNum(num): maxHeap.add(num) minHeap.add(maxHeap.removeMax()) if minHeap.size() > maxHeap.size(): maxHeap.add(minHeap.removeMin()) function findMedian(): if maxHeap.size() > minHeap.size(): return maxHeap.top() return (maxHeap.top() + minHeap.top()) / 2 Time complexity: for addNum, for findMedian. Space complexity: for storing all elements.
##### ###### ##### ### # # ### # # ###### ## ## ## ## ## ## ## # # # # # ## ##### #### ##### # # # # # # # #### ## # ## ## ## ## # # # # # ## ## # ###### ## ### # ### # ######
$ curl repovive.com/roadmaps/maang-interview-prep/heaps-priority-queues/find-median-from-data-stream-pseudocode
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░███████████████████████████████████████████████████████████████████████████████████████████████████████████████