#295
Find Median from Data Stream
candidate master · 1310 · lc hard +32 · 54.2% accepted · 13,136 likes · top 46%
Description
The median of an ordered integer list is its middle value. If the size is even, there is no single middle value, so the median is the mean of the two middle values.
- For example, for arr = [2,3,4], the median is 3.
- For example, for arr = [2,3], the median is (2 + 3) / 2 = 2.5.
Implement the MedianFinder class:
- MedianFinder() Initializes the MedianFinder object.
- void addNum(int num) Adds integer num from the data stream to the data structure.
- double findMedian() Returns the median of all elements so far. Answers within 10-5 of the actual answer will be accepted.
Example 1:
Input
["MedianFinder", "addNum", "addNum", "findMedian", "addNum", "findMedian"]
[[], [1], [2], [], [3], []]
Output
[null, null, null, 1.5, null, 2.0]
Example 2:
Explanation
MedianFinder medianFinder = new MedianFinder();
medianFinder.addNum(1); // arr = [1]
medianFinder.addNum(2); // arr = [1, 2]
medianFinder.findMedian(); // return 1.5 (i.e., (1 + 2) / 2)
medianFinder.addNum(3); // arr[1, 2, 3]
medianFinder.findMedian(); // return 2.0
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16