寻找两个有序数组的中位数
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1 : nums1 = [ 1 , 3 ] nums2 = [ 2 ] 则中位数是 2.0 示例 2 : nums1 = [ 1 , 2 ] nums2 = [ 3 , 4 ] 则中位数是 ( 2 + 3 ) / 2 = 2.5 题解( 转自 ) 解法一 简单粗暴,先将两个数组合并,两个有序数组的合并也是归并排序中的一部分。然后根据奇数,还是偶数,返回中位数。 代码 public double findMedianSortedArrays ( int [ ] nums1 , int [ ] nums2 ) { int [ ] nums ; int m = nums1 . length ; int n = nums2 . length ; nums = new int [ m + n ] ; if ( m == 0 ) { if ( n % 2 == 0 ) { return ( nums2 [ n / 2 - 1 ] + nums2 [ n / 2 ] ) / 2.0 ; } else { return nums2 [ n / 2 ] ; } } if ( n =