zoukankan      html  css  js  c++  java
  • Median of Two Sorted Arrays

    题目链接

    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大的数字。
  • 相关阅读:
    asp.net pager
    asp.net 2.0
    mul page
    基于 Ajax 的持久对象映射(reship)
    asp.net run
    reship HttpProc
    some questions
    rss feed
    javascript function
    ioc
  • 原文地址:https://www.cnblogs.com/multhree/p/10294768.html
Copyright © 2011-2022 走看看