LeetCode:两排序数组中位数(C语言版)
Posted 想考北航的小刺猬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode:两排序数组中位数(C语言版)相关的知识,希望对你有一定的参考价值。
double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size)
int a[nums1Size + nums2Size];
int i = 0;
int j = 0;
int k = 0;
while(i <nums1Size && j < nums2Size)
if(nums1[i] <= nums2[j])
a[k++] = nums1[i++];
else
a[k++] = nums2[j++];
while(i < nums1Size)
a[k++] = nums1[i++];
while(j < nums2Size)
a[k++] = nums2[j++];
if((nums1Size + nums2Size) % 2 == 0)
return (a[(nums1Size + nums2Size) / 2] + a[(nums1Size + nums2Size) / 2 - 1]) / 2.0;
else
return a[(nums1Size + nums2Size) / 2]/1.0;
这个代码只能说非常容易理解,就是合并加计算,合并就是合并两个数组,然后计算就是找到中间值并返回。合并类似归并排序的Merge,在很多数据结构书上都可以看到。
以上是关于LeetCode:两排序数组中位数(C语言版)的主要内容,如果未能解决你的问题,请参考以下文章
leetcode链表--13median-of-two-sorted-arrays(两个排序数组的中位数,时间复杂度)
LeetCode 经典】MedianSortedArrays