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

    public class Solution {
        public double findMedianSortedArrays(int[] nums1, int[] nums2) {
            int l=(nums1.length+nums2.length+1)>>1;
            int r=(nums1.length+nums2.length+2)>>1;
            return (kthSmallest(nums1, 0, nums2, 0, l)+kthSmallest(nums1, 0, nums2, 0, r))/2.0;
        }
        private int kthSmallest(int[] nums1, int i, int[] nums2, int j, int k)
        {
            if(i>=nums1.length)
                return nums2[j+k-1];
            if(j>=nums2.length)
                return nums1[i+k-1];
            if(k==1)
                return Math.min(nums1[i], nums2[j]);
            
            int l=Math.min(k/2, nums1.length-i);
            int r=Math.min(k/2, nums2.length-j);
            
            if(nums1[i+l-1]<nums2[j+r-1])
                return kthSmallest(nums1, i+l, nums2, j, k-l);
            else
                return kthSmallest(nums1, i, nums2, j+r, k-r);
            
        }
    }
      
  • 相关阅读:
    JavaScript进阶-BOM和DOM
    JavaScript基础
    CSS2-属性
    CSS1-选择器
    HTML-常用标签
    判断回文
    课堂作业
    动手动脑
    原码反码补码
    Java第一次考试作业
  • 原文地址:https://www.cnblogs.com/asuran/p/7567988.html
Copyright © 2011-2022 走看看