//在刷题时候发现 某一个数组置空时答案错误 ,所以专门把空数组拉出来处理。
double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size) {
//空数组一直判断不出来,直接在开头处理
if (nums1Size == 0) {
return nums2Size % 2 == 0 ? (nums2[(nums2Size / 2) - 1] + nums2[nums2Size / 2]) / 2.0 : nums2[nums2Size / 2];
}
else if (nums2Size == 0) {
return nums1Size % 2 == 0 ? (nums1[(nums1Size / 2) - 1] + nums1[nums1Size / 2]) / 2.0 : nums1[nums1Size / 2];
}
int i=0,j=0;
int k=0;
int *nums3=(int *)malloc(sizeof(int)*(nums1Size+nums2Size));
while(i<nums1Size&&j<nums2Size){
if(nums1[i]<=nums2[j]){
nums3[k++]=nums1[i++];
}
else{
nums3[k++]=nums2[j++];
}
}
while(i<nums1Size){
nums3[k++]=nums1[i++];
}
while(j<nums2Size){
nums3[k++]=nums2[j++];
}
int m=nums1Size+nums2Size;
double s;
if(m%2==0){
s=(nums3[(m/2)-1]+nums3[m/2]);
}
else{
s=2*nums3[m/2];
}
free(nums3);
return s/2;
}