二刷hot100-295.数据流的中位数
2026/8/20 15:46:20 网站建设 项目流程

用两个堆:最大堆和最小堆;

且保证两堆大小差最多为1且此时最大堆大小较大,最小堆的值均大于最大堆

class MedianFinder { PriorityQueue<Integer> p1; PriorityQueue<Integer> p2; public MedianFinder() { p1 = new PriorityQueue<>((a,b) -> b - a); p2 = new PriorityQueue<>((a,b) -> a - b); } public void addNum(int num) { if(p1.size() == p2.size()){ p2.add(num); p1.add(p2.poll()); }else{ p1.add(num); p2.add(p1.poll()); } } public double findMedian() { if(p1.size() == p2.size()){ return (p1.peek() + p2.peek()) / 2.0; }else{ return p1.peek(); } } } /** * Your MedianFinder object will be instantiated and called as such: * MedianFinder obj = new MedianFinder(); * obj.addNum(num); * double param_2 = obj.findMedian(); */

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询