Menu
CoddyTech

Median of Two Sorted Arrays

DifficileRecherche binairepython iconjava iconcpp iconc iconjs icon+10

Tu reçois deux listes d’entiers, nums1 et nums2, chacune triée par ordre croissant et contenant au moins une valeur. Renvoie la médiane de toutes leurs valeurs réunies, sous forme de texte.

Si le nombre total est impair, la médiane est la valeur du milieu, comme "4". S’il est pair, c’est la moyenne des deux valeurs du milieu, comme "2.5" ou "-0.5". Écris un nombre entier sans virgule, et zéro sous la forme "0", jamais "-0". Vise une complexité temporelle de O(log(min(m, n))).

Fonction

findMedianSortedArrays(nums1: integer-array, nums2: integer-array) → string
nums1integer-array
la première liste, triée de la plus petite à la plus grande
nums2integer-array
la deuxième liste, triée du plus petit au plus grand
Renvoiestring
la médiane de toutes les valeurs, sous forme de texte comme « 4 » ou « -2.5 »

Contraintes

  • 1 ≤ nums1.length, nums2.length ≤ 3000
  • -106 ≤ nums1[i], nums2[i] ≤ 106
  • Les deux listes sont triées par ordre non décroissant, et les valeurs peuvent se répéter.

Exemples

Entrée
nums1 = [1, 4]nums2 = [2, 7, 9]
Sortie
"4"
Explication
Ensemble, les valeurs sont 1, 2, 4, 7, 9. Cinq valeurs ont une valeur médiane, la troisième, qui est 4.
challenge icon

Pour aller plus loin

Peux-tu utiliser la même coupure pour trouver la k-ième plus petite valeur des deux listes, quel que soit k, en temps logarithmique ?

Réinitialiser le code
def findMedianSortedArrays(nums1, nums2):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Arguments

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

Résultat attendu

"4"