Menu
CoddyTech

Median of Two Sorted Arrays

困难二分查找python iconjava iconcpp iconc iconjs icon+10

你会得到两个整数列表,nums1 和 nums2,它们都按从小到大的顺序排列,且各自至少包含一个值。请以文本形式返回它们所有值合并后的中位数。

如果总数是奇数,中位数就是中间的值,例如 "4"。如果总数是偶数,中位数就是中间两个值的平均数,例如 "2.5" 或 "-0.5"。整数不要写小数点,零写作 "0",不要写作 "-0"。目标时间复杂度为 O(log(min(m, n)))。

函数

findMedianSortedArrays(nums1: integer-array, nums2: integer-array) → string
nums1integer-array
第一个列表,按从小到大的顺序排列
nums2integer-array
第二个列表,按从小到大的顺序排序
返回值string
所有值的中位数,例如文本形式的“4”或“-2.5”

约束条件

  • 1 ≤ nums1.length, nums2.length ≤ 3000
  • -106 ≤ nums1[i], nums2[i] ≤ 106
  • 两个列表都按非递减顺序排列,值可以重复。

示例

输入
nums1 = [1, 4]nums2 = [2, 7, 9]
输出
"4"
解释
这些值合在一起是 1、2、4、7、9。5 个值中有一个中间值,也就是第 3 个值,它是 4。
challenge icon

进阶

你能否对两个列表使用相同的划分方法,在对数时间内找到任意 k 对应的第 k 小值?

重置代码
def findMedianSortedArrays(nums1, nums2):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

nums1 = [1, 4]
nums2 = [2, 7, 9]

预期输出

"4"