There are two sorted arrays nums1 and nums2 of size m and n respectively.
Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
Example 1:
nums1 = [1, 3] nums2 = [2] The median is 2.0
Example 2:
nums1 = [1, 2] nums2 = [3, 4] The median is (2 + 3)/2 = 2.5
public class Solution {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int i=0,j=0;
int size=(nums1.length+nums2.length);
int[] temp=new int[size/2+1];
boolean flag=false;
if((nums1.length+nums2.length)%2==0)
flag=true;
int k=0;
while(i<nums1.length&&j<nums2.length){
if(nums1[i]<nums2[j]){
temp[k++]=nums1[i++];
}else{
temp[k++]=nums2[j++];
}
if(k==size/2+1){
if(flag)return (temp[k-1]+temp[k-2])*100/100.0/2.0;
else return temp[k-1];
}
}
while(k<=size/2){
while(k<=size/2&&i<nums1.length)
temp[k++]=nums1[i++];
while(k<=size/2&&j<nums2.length)
temp[k++]=nums2[j++];
}
if(flag)return ((temp[k-1]+temp[k-2])*100)/100.0/2.0;
else return temp[k-1];
}
}