c - 有人可以帮助找出这个找到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;
}
解决方案
推荐阅读
- php - Symfony 如何使用 LexicJWT 在 EventSubscriber 中获取用户
- r - R 仅订购一个因子水平(或列,如果之后)以影响从长到宽的顺序(使用价差)
- excel - 在 PowerPoint 演示文稿中调整大小/位置形状
- c# - 初始化器语法与无参数构造器语法
- c# - 检查数据库中的单元格是否为空的正确方法是什么
- reactjs - 如何检查 React 中是否存在滚动条?
- c# - 没有 Flash 重置 Google Chrome v71 Selenium .Net
- java - 如何使用 maven 生成一个 jar,其中包含项目中的指定类和其依赖项中的指定类?
- javascript - 通过 http 请求填充 html 选择选项
- angular - Angular Material Vertical Stepper 单一形式 .reset() 无法正常工作