4. 寻找两个正序数组的中位数 double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size){ int length = nums1Size + nums2Size; int *arr= calloc(length, sizeof(int)); int i = 0, j = 0; while (1) { if (i < nums1Size && j < nums2Size) { if (nums1[i] <= nums2[j]) { arr[i+j] = nums1[i]; ++i; } else { arr[i+j] = nums2[j]; ++j; } } else { if (i == nums1Size && j < nums2Size) { arr[i+j] = nums2[j]; ++j; if (j == nums2Size) break; } if (j == nums2Size && i < nums1Size) { arr[i+j] = nums1[i]; ++i; if (i == nums1Size) break; } } } if ((length % 2) == 1) { return arr[length/2]; } else { return (arr[length/2] + arr[length/2-1]) / 2.0; } }