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);
            
        }
    }
      
  • 相关阅读:
    Christmas Jump(k_push)
    cloudyarn(k_push)
    Eye sketch
    Candy Treasure Box
    Active Ball
    Lotus words
    Super Fish
    [POJ2436] Disease Management
    [bzoj3376] Cube Stacking 方块游戏
    [POJ3009] Curling 2.0
  • 原文地址:https://www.cnblogs.com/asuran/p/7567988.html
Copyright © 2011-2022 走看看