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(两个排序数组的中位数,时间复杂度)

六种排序算法C语言版(上)

LeetCode 经典】MedianSortedArrays

Leetcode 4. 寻找两个正序数组的中位数-困难(带图)

LeetCode-4. 两个排序数组的中位数(详解)

LeetCode4:两个排序数组的中位数