m0_61574664 2021-12-04 15:45 采纳率: 87.1%
浏览 48
已结题

寻找两个正序数组的中位数

class Solution{
public:
double findMedianSortedArrays(vector& nums1, vector& nums2)
{
int n = nums1.size();
int m = nums2.size();
unordered_set total;
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < m; ++j) {
if (nums1(i) < nums2(j))
{
total.insert(i + 1, nums2(j));
}
else if (nums1(i) = nums2(j))
{
nums2.erase(j);
}
else
{
total.inset(i - 1, nums2(j));
}
}
}
while (total % 2 == 0)
{
int t = total.size();
float middle = (total(t / 2) + total(t / 2 + 1)) / 2;
}
while (!total % 2 = 0)
{
int t = total.size();
float middle = total(t / 2);
}
return middle;

}

这是我写的程序,我认为应该会有错误,来个大佬订正一下我的错误,在现有基础上改一改,我用了一个哈希表,不知道该不该用。
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。
输入:nums1 = [1,2], nums2 = [3,4]
输出:2.50000
解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5

  • 写回答

2条回答 默认 最新

  • 不易七 2021-12-04 17:12
    关注

    双for循环也有问题,如果全部都相等,那么就没一个数据会被添加到合并数组中,建议分别依次遍历两个输入数组,先全部把数据添加到合并数组中再进行排序,然后再依据总的元素数量是奇数还是偶数,取出中位数

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月13日
  • 已采纳回答 12月5日
  • 创建了问题 12月4日

悬赏问题

  • ¥15 (标签-STM32|关键词-智能小车)
  • ¥20 关于#stm32#的问题,请各位专家解答!
  • ¥15 (标签-python)
  • ¥15 第一个已完成,求第二个做法
  • ¥20 搭建awx,试了很多版本都有错
  • ¥15 java corba的客户端该如何指定使用本地某个固定IP去连接服务端?
  • ¥15 activiti工作流问题,求解答
  • ¥15 有人写过RPA后台管理系统么?
  • ¥15 Bioage计算生物学年龄
  • ¥20 如何将FPGA Alveo U50恢复原来出厂设置哇?