File tree Expand file tree Collapse file tree 1 file changed +9
-12
lines changed
solution/0200-0299/0295.Find Median from Data Stream Expand file tree Collapse file tree 1 file changed +9
-12
lines changed Original file line number Diff line number Diff line change 1
1
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 ());
4
4
5
- /** initialize your data structure here. */
6
5
public MedianFinder () {
6
+
7
7
}
8
8
9
9
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 ());
14
14
}
15
15
}
16
16
17
17
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 ();
22
19
}
23
20
}
24
21
@@ -27,4 +24,4 @@ public double findMedian() {
27
24
* MedianFinder obj = new MedianFinder();
28
25
* obj.addNum(num);
29
26
* double param_2 = obj.findMedian();
30
- */
27
+ */
You can’t perform that action at this time.
0 commit comments