首页 > 解决方案 > 有人可以帮助找出这个找到2个排序数组中位数的代码有什么问题吗

问题描述

它给出了堆缓冲区溢出的错误。问题是找到两个排序数组的中位数。

double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size){
    int n = nums1Size, m = nums2Size;
    double med1, med2, median;
    if(n % 2 == 1){
        med1 = (nums1[(n / 2) - 1] + nums1[n / 2]) / 2;
    }
    else{
        med1 = nums1[((n + 1) / 2) - 1];
    }
    if(m%2 == 1){
        med2 = (nums2[(m / 2) - 1] + nums2[(m / 2)]) / 2;
    }
    else{
        med2 = nums2[((m + 1) / 2) - 1];
    }
    median = (med1 + med2) / 2;
    return median;
}

标签: carraysalgorithmfunctionmedian

解决方案


推荐阅读