设计一个数据结构,支持逐个添加数字并在任何时刻返回中位数。你需要维护两个堆:一个用于下半部分的最大堆和一个用于上半部分的最小堆,保持它们平衡,使中位数始终可以在堆顶访问。这是典型的双堆问题,教你如何将数据集分成两个堆来实现 O(log n) 的插入和 O(1) 的中位数检索。
用自己的话写下这一站的结论。