Skip to content

Commit d5ab02a

Browse files
authored
Update Solution.java
1 parent 4673e0f commit d5ab02a

File tree

1 file changed

+9
-12
lines changed
  • solution/0200-0299/0295.Find Median from Data Stream

1 file changed

+9
-12
lines changed
Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,21 @@
11
class MedianFinder {
2-
private PriorityQueue<Integer> q1 = new PriorityQueue<>();
3-
private PriorityQueue<Integer> q2 = new PriorityQueue<>(Collections.reverseOrder());
2+
private PriorityQueue<Integer> minQ = new PriorityQueue<>();
3+
private PriorityQueue<Integer> maxQ = new PriorityQueue<>(Collections.reverseOrder());
44

5-
/** initialize your data structure here. */
65
public MedianFinder() {
6+
77
}
88

99
public void addNum(int num) {
10-
q1.offer(num);
11-
q2.offer(q1.poll());
12-
if (q2.size() - q1.size() > 1) {
13-
q1.offer(q2.poll());
10+
maxQ.offer(num);
11+
minQ.offer(maxQ.poll());
12+
if (minQ.size() - maxQ.size() > 1) {
13+
maxQ.offer(minQ.poll());
1414
}
1515
}
1616

1717
public double findMedian() {
18-
if (q2.size() > q1.size()) {
19-
return q2.peek();
20-
}
21-
return (q1.peek() + q2.peek()) * 1.0 / 2;
18+
return minQ.size() == maxQ.size() ? (minQ.peek() + maxQ.peek()) / 2.0 : minQ.peek();
2219
}
2320
}
2421

@@ -27,4 +24,4 @@ public double findMedian() {
2724
* MedianFinder obj = new MedianFinder();
2825
* obj.addNum(num);
2926
* double param_2 = obj.findMedian();
30-
*/
27+
*/

0 commit comments

Comments
 (0)