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 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题