寻找两个正序数组的中位数: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。
练习建议
先根据输入输出格式写出可运行程序,再用公开样例检查结果;遇到边界情况时,补充自测用例后提交。