public class Solution {
public double help(int nums1[],int start1,int end1,int nums2[],int start2,int end2,int target)
{
if(start1>end1)
{
return nums2[start2+target-1];
}
if(start2>end2)
{
return nums1[start1+target-1];
}
if(target==1)
{
return Math.min(nums1[start1],nums2[start2]);
}
int k=target/2;
if(Math.min(end1-start1+1, end2-start2+1)<k)
{
k=Math.min(end1-start1+1, end2-start2+1);
}
if(nums1[start1+k-1]<nums2[start2+k-1])
{
return help(nums1,start1+k, end1,nums2,start2,end2,target-k);
}
else
{
return help(nums1,start1, end1,nums2,start2+k,end2,target-k);
}
}
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int k=(nums1.length+nums2.length+1)/2;
double temp=help(nums1,0,nums1.length-1,nums2,0,nums2.length-1,k);
if((nums1.length+nums2.length)%2!=0)return temp;
else return (help(nums1,0,nums1.length-1,nums2,0,nums2.length-1,k+1)+temp)/2.0;
}
}
leetcode Median of Two Sorted Arrays
最新推荐文章于 2020-07-23 11:00:23 发布