ㄟ......忽略題目要求,暴力法解之 XD
double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size) {
int *merged = calloc (nums1Size+nums2Size, sizeof(int));
int l=0, r=0;
for (int i=0; i<nums1Size+nums2Size; i++)
{
if (l==nums1Size)
{
merged[i]= nums2[r++];
continue;
}
if (r==nums2Size)
{
merged[i]= nums1[l++];
continue;
}
if (nums1[l]<nums2[r])
merged[i]= nums1[l++];
else
merged[i]= nums2[r++];
}
int mid = (nums1Size+nums2Size)/2;
double ret = merged[mid];
if ((nums1Size+nums2Size)%2==0)
ret = (merged[mid-1]+merged[mid])/2.0;
return ret;
}
沒有留言:
張貼留言