2023-12-09 18:42:21 +08:00
|
|
|
|
<p><strong>中位数</strong>是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。</p>
|
2022-03-27 20:56:26 +08:00
|
|
|
|
|
2023-12-09 18:42:21 +08:00
|
|
|
|
<ul>
|
|
|
|
|
<li>例如 <code>arr = [2,3,4]</code> 的中位数是 <code>3</code> 。</li>
|
|
|
|
|
<li>例如 <code>arr = [2,3]</code> 的中位数是 <code>(2 + 3) / 2 = 2.5</code> 。</li>
|
|
|
|
|
</ul>
|
2022-03-27 20:56:26 +08:00
|
|
|
|
|
2023-12-09 18:42:21 +08:00
|
|
|
|
<p>实现 MedianFinder 类:</p>
|
2022-03-27 20:56:26 +08:00
|
|
|
|
|
|
|
|
|
<ul>
|
2023-12-09 18:42:21 +08:00
|
|
|
|
<li>
|
|
|
|
|
<p><code>MedianFinder() </code>初始化 <code>MedianFinder</code> 对象。</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<p><code>void addNum(int num)</code> 将数据流中的整数 <code>num</code> 添加到数据结构中。</p>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<p><code>double findMedian()</code> 返回到目前为止所有元素的中位数。与实际答案相差 <code>10<sup>-5</sup></code> 以内的答案将被接受。</p>
|
|
|
|
|
</li>
|
2022-03-27 20:56:26 +08:00
|
|
|
|
</ul>
|
|
|
|
|
|
2023-12-09 18:42:21 +08:00
|
|
|
|
<p><strong>示例 1:</strong></p>
|
2022-03-27 20:56:26 +08:00
|
|
|
|
|
2023-12-09 18:42:21 +08:00
|
|
|
|
<pre>
|
|
|
|
|
<strong>输入</strong>
|
|
|
|
|
["MedianFinder", "addNum", "addNum", "findMedian", "addNum", "findMedian"]
|
|
|
|
|
[[], [1], [2], [], [3], []]
|
|
|
|
|
<strong>输出</strong>
|
|
|
|
|
[null, null, null, 1.5, null, 2.0]
|
2022-03-27 20:56:26 +08:00
|
|
|
|
|
2023-12-09 18:42:21 +08:00
|
|
|
|
<strong>解释</strong>
|
|
|
|
|
MedianFinder medianFinder = new MedianFinder();
|
|
|
|
|
medianFinder.addNum(1); // arr = [1]
|
|
|
|
|
medianFinder.addNum(2); // arr = [1, 2]
|
|
|
|
|
medianFinder.findMedian(); // 返回 1.5 ((1 + 2) / 2)
|
|
|
|
|
medianFinder.addNum(3); // arr[1, 2, 3]
|
|
|
|
|
medianFinder.findMedian(); // return 2.0</pre>
|
2022-03-27 20:56:26 +08:00
|
|
|
|
|
2023-12-09 18:42:21 +08:00
|
|
|
|
<p><strong>提示:</strong></p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li><code>-10<sup>5</sup> <= num <= 10<sup>5</sup></code></li>
|
|
|
|
|
<li>在调用 <code>findMedian</code> 之前,数据结构中至少有一个元素</li>
|
|
|
|
|
<li>最多 <code>5 * 10<sup>4</sup></code> 次调用 <code>addNum</code> 和 <code>findMedian</code></li>
|
|
|
|
|
</ul>
|