CodeACM
HOT 100 · 二分查找 · LC 4

寻找两个正序数组的中位数:ACM 模式刷题

按标准输入读取测试数据,输出结果后可在 CodeACM 在线运行和提交。

题目描述

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

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

输入格式

第一行输入 m 和 n。

第二行输入 m 个整数,第三行输入 n 个整数;空数组对应空行。

输出格式

输出中位数,结果保留一位小数。

数据范围

  • 0 ≤ m, n ≤ 1000
  • 1 ≤ m + n ≤ 2000
  • −10⁶ ≤ 元素值 ≤ 10⁶

公开样例

样例 1

输入

2 1
1 3
2

输出

2.0

合并后的数组为 [1, 2, 3],中位数为 2。

样例 2

输入

2 2
1 2
3 4

输出

2.5

中间两个数 2 和 3 的平均值为 2.5。

练习建议

先根据输入输出格式写出可运行程序,再用公开样例检查结果;遇到边界情况时,补充自测用例后提交。