public static int[] medianII(int[] nums) {
        // write your code here
        Queue<Integer>q1=new PriorityQueue<>(Collections.reverseOrder());
        Queue<Integer>q2=new PriorityQueue<>();
        int n=nums.length;
        int[]A=nums, B=new int[n];
        for (int i=0;i<n;++i) {
            int a=A[i];
            if (q1.isEmpty()) {
            	q1.offer(a);
            } else if (q1.peek()>=a) {
                q1.offer(a);
            } else {
                q2.offer(a);
            }
            if (q1.size()<q2.size()) {
                q1.offer(q2.poll());
            }
            if (q1.size()-1>q2.size()) {
            	q2.offer(q1.poll());
            }
            B[i]=q1.peek();
        }
        return B;
    }