#P4079. 寻找两个正序数组的中位数

寻找两个正序数组的中位数

题目内容

给定两个大小分别为 mmnn的正序(从小到大)数组 nums1nums1nums2nums2。请你找出并返回这两个正序数组的中位数。

算法的时间复杂度应该为 O(log (m+n))O(log\ (m+n))

输入描述

  • 第一行输入一个整数 m,表示数组 nums1 的长度。
  • 第二行输入 m 个整数,表示数组 nums1。
  • 第三行输入一个整数 n,表示数组 nums2 的长度。
  • 第四行输入 n 个整数,表示数组 nums2。

输出描述

输出一个浮点数,表示两个数组的 中位数,精确到 5 位小数。

样例1

输入

2
1 3
1
2

输出

2.00000

说明

合并数组 = [1,2,3][1,2,3] ,中位数 22

样例2

输入

2
1 2
2
3 4

输出

2.50000

说明

合并数组= [1,2,3,4][1,2,3,4] ,中位数 (2+3)/2=2.5(2 + 3) / 2 = 2.5

提示:

  • nums1.length==mnums1.length == m
  • nums2.length==nnums2.length == n
  • 0<=m<=10000 <= m <= 1000
  • 0<=n<=10000 <= n <= 1000
  • 1<=m+n<=20001 <= m + n <= 2000
  • 106<=nums1[i],nums2[i]<=106-10^6 <= nums1[i], nums2[i] <= 10^6