#문제 설명
#문제 풀이
class MedianFinder {
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder());
public MedianFinder() {
}
public void addNum(int num) {
maxHeap.offer(num);
minHeap.offer(maxHeap.poll());
if (minHeap.size() > maxHeap.size())
maxHeap.offer(minHeap.poll());
}
public double findMedian() {
if (maxHeap.size() > minHeap.size()) return maxHeap.peek();
return (minHeap.peek() + maxHeap.peek()) / 2.0d;
}
}
'LeetCode > Heap' 카테고리의 다른 글
[Medium] 378. Kth Smallest Element in a Sorted Matrix (아마존) (2) | 2024.04.03 |
---|---|
[Medium] 703. Kth Largest Element in a Stream (아마존 코딩 테스트 기출 문제) (0) | 2024.04.03 |
[Medium] 451. Sort Characters By Frequency (0) | 2022.10.11 |
[Medium] 1046. Last Stone Weight (구글 코딩 테스트 기출문제) (0) | 2022.10.06 |
[Medium] 347. Top K Frequent Elements (애플/MS/메타/아마존) (0) | 2022.10.02 |