Median of Two Sorted Arrays - LeetCode

Posted 真子集

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Median of Two Sorted Arrays - LeetCode相关的知识,希望对你有一定的参考价值。

目录

题目链接

Median of Two Sorted Arrays - LeetCode

注意点

  • 要考虑数组长度不一致的情况

解法

解法一:将两个数组合并成一个有序数组,根据数组长度分奇偶情况求中位数。时间复杂度为O(m+n)

class Solution {
public:
    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
        int i = 0;
        int j = 0;
        int nums1_len = nums1.size();
        int nums2_len = nums2.size();
        vector<int> nums;
        while(i <  nums1_len&& j < nums2_len)
        {
            if(nums1[i] < nums2[j])
            {
                nums.push_back(nums1[i]);
                i++;
            }
            else
            {
                nums.push_back(nums2[j]);
                j++;
            }
        }
        while(i < nums1_len)
        {
            nums.push_back(nums1[i]);
            i++;
        }
        while(j < nums2_len)
        {
            nums.push_back(nums2[j]);
            j++;
        }
        int temp = nums.size();
        for(int l = 0;l < temp;l++)
        {
            cout << nums[l];
        }
        if(temp%2==1)
        {
            return (nums[(temp-1)/2]);
        }
        else
        {
            return ((double)(nums[temp/2]+nums[temp/2-1])/2);
        }
    }
};

技术分享图片

解法二:参考->leetcode之Median of Two Sorted Arrays问题

小结

  • 复杂度为O(m+n)的方法十分简单,但是O(log(m+n))就没那么容易了,只想到要用二分法,但是要在两个数组之间用二分法还是挺麻烦的,所以应该是要对数字二分。并且求中位数转为求第K大的数字。

以上是关于Median of Two Sorted Arrays - LeetCode的主要内容,如果未能解决你的问题,请参考以下文章

leedcode Median of Two Sorted Arrays

#Leetcode# 4. Median of Two Sorted Arrays

LeetCode: Median of Two Sorted Arrays

** Median of Two Sorted Arrays

Leetcode 4. Median of Two Sorted Arrays(二分)

4. Median of Two Sorted Arrays