day100(3.1)——leetcode面试经典150

📅 发布时间:2026/7/16 12:56:03 👁️ 浏览次数:
day100(3.1)——leetcode面试经典150
295. 数据流的中位数295. 数据流的中位数这个方法我也想用但是我不知道怎么将较大的数和较小的数进行区分实在是太强了怎么能这么聪明想到这个方法呢震撼题目题解class MedianFinder { QueueInteger a,b; public MedianFinder() { //小根堆将较大的一半放入 a new PriorityQueue(); //大根堆将较小的一半放入 b new PriorityQueue((a,b)-b-a); } public void addNum(int num) { if(a.size()!b.size()) { a.add(num); b.add(a.poll()); } else { b.add(num); a.add(b.poll()); } } public double findMedian() { //是偶数个数 if((a.size()b.size())%20) { return (a.peek()b.peek())*1.0/2; } //是奇数个数 else { return a.size()b.size()?a.peek():b.peek(); } } } /** * Your MedianFinder object will be instantiated and called as such: * MedianFinder obj new MedianFinder(); * obj.addNum(num); * double param_2 obj.findMedian(); */