zoukankan      html  css  js  c++  java
  • 4. Median of Two Sorted Arrays【leetcode】java,算法,中间值

    4. Median of Two Sorted Arrays

    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)).

    Example 1:

    nums1 = [1, 3]
    nums2 = [2]
    
    The median is 2.0
    

    Example 2:

    nums1 = [1, 2]
    nums2 = [3, 4]
    
    The median is (2 + 3)/2 = 2.5
    题目大意:求中值
    实现方法
    public class Solution {
        public double findMedianSortedArrays(int[] nums1, int[] nums2) {
            double res=0.00;
            int n=nums2.length;
            //判断非空的情况
            if(nums1==null){
                return res=nums2[n/2];
            }
            int m=nums1.length;
            if(nums2==null){
                return res=nums1[m/2];
            }    
            //建立标志位用于标记此次是奇数还是偶数个数字
            int carry=(m+n)%2;
            //建立标志位,如果为奇数的情况下right即为中间值mid
            int left=(m+n)/2-1;
            int right=(m+n)/2;
            //开通一个m+n的空间其实实际只使用一半,若为节省空间可以采用
            int [] num =new int[m+n];
            int i=m-1,j=n-1;
            int index=m+n-1;
    
            //将两个数组进行排序(中间值-最后进行排序)
            while(index>left){
                while(i>=0&&j>=0){
    
                    num[index--]=(nums1[i]>nums2[j])?nums1[i--]:nums2[j--];
                }
                while(i>=0){
                    num[index--]=nums1[i--];
                }
                while(j>=0){
                    num[index--]=nums2[j--];
                }
            }//end
            if(carry>0)
                //奇数位置的中间值
                res =(double)num[right];
            else{
                //偶数位置的中间值
                res=(double)(num[left]+num[right])/2;
            }
            return res;
        }
    }
    
    
    不积跬步无以至千里,千里之堤毁于蚁穴。 你是点滴积累成就你,你的丝丝懒惰毁掉你。 与诸君共勉
  • 相关阅读:
    Percona: How to Restore MySQL Logical Backup at Maximum Speed
    MySQL之UNDO及MVCC、崩溃恢复
    MySQL checkpoint深入分析
    关于MySQL latch争用深入分析与判断
    InnoDB关键特性之刷新邻接页-异步IO
    InnoDB关键特性之自适应hash索引
    MySQL后台线程的清理工作
    MySQL IO线程及相关参数调优
    MySQL存储写入性能严重抖动分析
    MySQL的SQL预处理(Prepared)
  • 原文地址:https://www.cnblogs.com/haoHaoStudyShare/p/7354467.html
Copyright © 2011-2022 走看看