टीएल;डीआर
- समस्या: सीटीसीआई समस्या १७.२० का तकनीकी विवरण।
- दृष्टिकोण: सीटीसीआई problem १७.२०: track and maintain the median of a numerical data stream using a Max-Heap and Min-Heap.
- जटिलता: इष्टतम समय और मेमोरी संतुलन।
यह लेख सीटीसीआई समस्या १७.२० का एक स्पष्ट विवरण प्रदान करता है।
१. संदर्भ और समस्या कथन
सीटीसीआई problem १७.२०: track and maintain the median of a numerical data stream using a Max-Heap and Min-Heap.
२. कोड और कार्यान्वयन
public class ContinuousMedian {
private final PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder()); // Left lower half
private final PriorityQueue<Integer> minHeap = new PriorityQueue<>(); // Right upper half
public void insert(int num) {
if (maxHeap.isEmpty() || num <= maxHeap.peek()) maxHeap.offer(num);
else minHeap.offer(num);
if (maxHeap.size() > minHeap.size() + 1) minHeap.offer(maxHeap.poll());
else if (minHeap.size() > maxHeap.size()) maxHeap.offer(minHeap.poll());
}
public double getMedian() {
if (maxHeap.size() == minHeap.size()) return (maxHeap.peek() + minHeap.peek()) / 2.0;
return maxHeap.peek();
}
}
३. सारांश और एज केसेस
हमेशा सीमांत स्थितियों और इनपुट की जांच करें।
