leetcode.C.4. Median of Two Sorted Arrays

4. Median of Two Sorted Arrays

This should be the easiest and slowest method, because it is ordered, so compare and then sort to get the median.

 1 double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size) {
 2     int numsSize = nums1Size + nums2Size;
 3     int *nums = (int*)malloc(sizeof(int)*numsSize);
 4     double median;
 5     //合并
 6     for (int i = 0, j = 0, k = 0; k < numsSize; k++) {
 7         if (i >= nums1Size)    nums[k] = nums2[j++];
 8         else if (j >= nums2Size)    nums[k] = nums1[i++];
 9         else {
10             if (nums1[i] >= nums2[j])nums[k] = nums2[j++];
11             else nums[k] = nums1[i++];
12         }
13     }
14     //中卫
15     if (numsSize % 2 == 0)
16         median = (double) (nums[(int)(numsSize / 2 - 1)] + nums[(int)(numsSize / 2)]) / 2;
17     else median = (double)nums[numsSize / 2];
18     free(nums);
19     return median;
20 }

 

 

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325472807&siteId=291194637