JSFiddle - React, Tailwind, and code Playground
JavaScript 1.7
class RunningMedian {
minHeap = new MinHeap();
maxHeap = new MaxHeap();
add = (val) => {
maxHeap.add(val);
minHeap.add(maxHeap.poll());
if (maxHeap.size() < minHeap.size()) {
maxHeap.add(minHeap.poll());
}
};
median = () => {
if (maxHeap.size() > minHeap.size()) {
return maxHeap.peek();
}
return (minHeap.peek() + maxHeap.peek()) / 2;
}
}