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

    Description:

    There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).

    思路:找出两个已经排好序数组的中位数。可以使用合并排序中的merge,然后直接找出中位数就能AC。时间复杂度为O(m+n)。但是!!这毕竟是一个Hard的题!时间复杂度要求O(log(m+n))!

    先上merge代码:

    public class Solution {
        public double findMedianSortedArrays(int[] nums1, int[] nums2) {
            
            int m = 0, n = 0;
            
            if(nums1 != null) {
                m = nums1.length;
            }
            if(nums2 != null) {
                n = nums2.length;
            }
            int[] res = new int[m + n];
            //merge
            int cur = 0, i = 0, j = 0;
            while(i<m && j<n) {
                if(nums1[i] < nums2[j]) {
                    res[cur] = nums1[i];
                    i ++;
                }
                else {
                    res[cur] = nums2[j];
                    j ++;
                }
                cur ++;
            }
            
            while(i < m) {
                res[cur] = nums1[i];
                i ++;
            }
                cur ++;
            
            while(j < n) {
                res[cur] = nums2[j];
                j ++;
                cur ++;
            }
            
            //findMedian
            int length = m + n;
            double ans = 0.0;
            //
            if((length & 1) != 0) {
                ans = res[length / 2];
            }
            else {
                ans = (double)(res[length/2 - 1] + res[length/2]) / 2.0;
            }
            
            return ans;
        }
    }

    严重怀疑Java的测试数据和C/C++的不一样。要不效率会这么高!

    O(log(m+n))的二分代码网上都是一样的,就不贴了。

    http://blog.csdn.net/zxzxy1988/article/details/8587244

  • 相关阅读:
    Flex实现页面多态state对象
    Flex精华摘要使用AS脚本
    JMeter最常用的三种类型的压力测试
    工作流简介
    Android模拟器使用模拟SD卡
    交大研究生,就一个字牛
    Google code上利用SVN托管代码
    主流浏览器内核概览
    Android开发之ADB使用
    Redis入门教程
  • 原文地址:https://www.cnblogs.com/wxisme/p/4953360.html
Copyright © 2011-2022 走看看