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
双for循环也有问题,如果全部都相等,那么就没一个数据会被添加到合并数组中,建议分别依次遍历两个输入数组,先全部把数据添加到合并数组中再进行排序,然后再依据总的元素数量是奇数还是偶数,取出中位数
nums1=nums2,那个判断条件应该是双等于号==