import java.util.*;
public class Solution {
private Queue<Integer> oddNumber = new PriorityQueue<>((a,b) -> b-a);//降序排序,栈顶是小值的最大值
private Queue<Integer> evenNumber = new PriorityQueue<>();//升序排序,栈顶是大值的最小值
private int count = 0;
public void Insert(Integer num) {
count++;
int mod = count % 2;
if(mod == 0){//偶数
if(!oddNumber.isEmpty() && num < oddNumber.peek()){
int temp = oddNumber.poll();
oddNumber.offer(num);
num = temp;
}
evenNumber.offer(num);
}else{//奇数
if(!evenNumber.isEmpty() && num > evenNumber.peek()){
int temp = evenNumber.poll();
evenNumber.offer(num);
num = temp;
}
oddNumber.offer(num);
}
}
public Double GetMedian() {
int mod = count % 2;
double target = 0.0;
if(mod == 0){
target = ((double)oddNumber.peek() + (double)evenNumber.peek())/2.0;
}else{
target = (double)oddNumber.peek();
}
return target;
}
}