public class Solution {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
boolean flag=true;
int a=nums1.length/2;
int b=nums2.length/2;
int c=Math.abs(a-b);
int d=0;
if(nums1.length==0){
d=nums2[b];
}else if(nums2.length==0){
d=nums1[a];
}else{
while (flag) {
if (c<=1) {
flag=false;
if ((nums1[a]-nums2[b])*(Math.abs(nums1.length+nums2.length-2*a-2*b-3)-1)>0) {
d=nums2[b];
}else {
d=nums1[a];
}
}else if ((nums1[a]-nums2[b])>0&&((a-Math.max(0, a-c))>0||(nums1.length+nums2.length-2*a-2*b-2)>0)) {
c=((a-Math.max(0, a-c))+(Math.min(nums2.length-1,b+c)-b))/2;
a=Math.max(0, a-Math.min(1, c));
b=Math.min(nums2.length-1,b+Math.min(1, c));
}else {
c=((Math.min(nums1.length-1,a+c)-a)+(b-Math.max(0, b-c)))/2;
a=Math.min(nums1.length-1,a+Math.min(1, c));
b=Math.max(0, b-Math.min(1, c));
}
}
}
return (double)d;
}
}
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
boolean flag=true;
int a=nums1.length/2;
int b=nums2.length/2;
int c=Math.abs(a-b);
int d=0;
if(nums1.length==0){
d=nums2[b];
}else if(nums2.length==0){
d=nums1[a];
}else{
while (flag) {
if (c<=1) {
flag=false;
if ((nums1[a]-nums2[b])*(Math.abs(nums1.length+nums2.length-2*a-2*b-3)-1)>0) {
d=nums2[b];
}else {
d=nums1[a];
}
}else if ((nums1[a]-nums2[b])>0&&((a-Math.max(0, a-c))>0||(nums1.length+nums2.length-2*a-2*b-2)>0)) {
c=((a-Math.max(0, a-c))+(Math.min(nums2.length-1,b+c)-b))/2;
a=Math.max(0, a-Math.min(1, c));
b=Math.min(nums2.length-1,b+Math.min(1, c));
}else {
c=((Math.min(nums1.length-1,a+c)-a)+(b-Math.max(0, b-c)))/2;
a=Math.min(nums1.length-1,a+Math.min(1, c));
b=Math.max(0, b-Math.min(1, c));
}
}
}
return (double)d;
}
}