题解 | #数据流中的中位数#
数据流中的中位数
https://www.nowcoder.com/practice/9be0172896bd43948f8a32fb954e1be1
import java.util.*; public class Solution { PriorityQueue<Integer> queue1=new PriorityQueue(); //最小堆 保存大数 PriorityQueue<Integer> queue2=new PriorityQueue<Integer>((o1,o2)->o2-o1); //最大堆保存小数 public void Insert(Integer num) { if(queue1.size()==queue2.size()){ queue2.add(num); queue1.add(queue2.poll()); }else{ queue1.add(num); queue2.add(queue1.poll()); } } public Double GetMedian() { if(queue1.size()==queue2.size()){ return (double)(queue1.peek()+queue2.peek())/2; }else{ return (double)queue1.peek(); } } }