Menu
CoddyTech

Median of Two Sorted Arrays

むずかしい二分探索python iconjava iconcpp iconc iconjs icon+10

整数のリスト nums1 と nums2 が与えられます。それぞれ小さい値から大きい値の順に並んでおり、少なくとも1つの値を含みます。両方のリストの値を合わせた中央値を、テキストとして返してください。

要素数の合計が奇数の場合、中央値は中央の値です。たとえば "4" です。偶数の場合は、中央にある2つの値の平均です。たとえば "2.5" や "-0.5" です。整数は小数点なしで表し、ゼロは "0" とし、"-0" とはしません。実行時間は O(log(min(m, n))) を目指してください。

関数

findMedianSortedArrays(nums1: integer-array, nums2: integer-array) → string
nums1integer-array
最初のリスト。小さいものから大きいものへ並べ替え済み
nums2integer-array
2つ目のリスト。小さい順に並んでいます
戻り値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つの値には中央の値が1つあり、3番目の値である4です。
challenge icon

発展問題

同じ切り分けを使って、任意のkについて、2つのリストの中からk番目に小さい値を対数時間で見つけられますか?

コードをリセット
def findMedianSortedArrays(nums1, nums2):
    # ここにコードを書いてください

テスト #1

テスト #2

テスト #3

引数

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

期待される出力

"4"