import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param arr1 int整型一维数组
* @param arr2 int整型一维数组
* @return int整型
*/
public int getUpMedian (int[] arr1, int[] arr2) {
// write code here
PriorityQueue<Integer> que1=new PriorityQueue<>((a,b)->a-b);//从小到大 上边的堆
PriorityQueue<Integer> que2=new PriorityQueue<>((a,b)->b-a);//从大到小,下边的堆,其中队列头为答案
//效果类似为 100 99 98 || 97 96 95 97为答案
for(int i=0;i<arr1.length;i++)
{ if(que2.isEmpty()||arr1[i]<que2.peek())
{ que2.add(arr1[i]);
if(que2.size()>que1.size()+1)
{
que1.add(que2.poll());
}
}
else
{
que1.add(arr1[i]);
if(que1.size()>que2.size())
{
que2.add(que1.poll());
}
}
}
for(int i=0;i<arr2.length;i++)
{
if(que2.isEmpty()||arr2[i]<que2.peek())
{ que2.add(arr2[i]);
if(que2.size()>que1.size()+1)
{
que1.add(que2.poll());
}
}
else
{
que1.add(arr2[i]);
if(que1.size()>que2.size())
{
que2.add(que1.poll());
}
}
}
// System.out.println(que2.size());
return que2.peek();
}
}