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

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

昨天写题有点懵,回去想了一下有些不必要的操作,进行简单的优化

代码展示

class Solution {
public:
    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
        double targ = 0;
        vector<int> nums3;

        if (nums2.size() != 0 && nums1.size() != 0)
        {
            bool f = true;
            unsigned int i = 0, j = 0;
            while (f)
            {
                if (nums1.at(i) < nums2.at(j))
                {
                    nums3.push_back(nums1.at(i));
                    i++;
                    if (i == nums1.size())
                    {
                        for (j; j < nums2.size(); j++)
                        {
                            nums3.push_back(nums2.at(j));
                        }
                        f = false;
                    }
                }
                else
                {
                    nums3.push_back(nums2.at(j));
                    j++;
                    if (j == nums2.size())
                    {
                        for (i; i < nums1.size(); i++)
                        {
                            nums3.push_back(nums1.at(i));
                        }
                        f = false;
                    }
                }
            }
        }
        else
        {
            nums3 = nums1.size() > nums2.size() ? nums1 : nums2;
        }

        if (nums3.size() == 0)
        {
            targ = 0;
            return 0;
        }
        if (nums3.size() % 2 == 0)
        {
            targ = nums3.at(nums3.size() / 2) +
                nums3.at(nums3.size() / 2 - 1);
            targ = (double)targ / 2;
        }
        else {
            targ = (double)nums3.at(nums3.size() / 2);
        }
        return targ;
    }
};

改动

把数组nums2加入到nums1去掉,删除多余变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值