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 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了