Menu
CoddyTech

Next Greater Element I

On vous donne deux tableaux d’entiers distincts, nums1 et nums2, et chaque valeur de nums1 apparaît également dans nums2. L’élément suivant supérieur d’une valeur x est la première valeur située à droite de x dans nums2 qui est supérieure à x, ou -1 si aucune valeur de ce type n’existe.

Renvoyez un tableau contenant l’élément suivant supérieur de chaque valeur de nums1, dans l’ordre de nums1.

Fonction

nextGreaterElement(nums1: integer-array, nums2: integer-array) → integer-array
nums1integer-array
les valeurs auxquelles répondre, qui se trouvent toutes dans nums2
nums2integer-array
le tableau dans lequel vous regardez à droite de chaque valeur
Renvoieinteger-array
l’élément suivant supérieur à chaque valeur de nums1, ou -1, dans l’ordre de nums1

Contraintes

  • 1 ≤ nums1.length ≤ nums2.length ≤ 104
  • 0 ≤ nums1[i], nums2[i] ≤ 104
  • Toutes les valeurs de nums1 sont distinctes, et toutes les valeurs de nums2 sont distinctes.
  • Chaque valeur de nums1 apparaît dans nums2.

Exemples

Entrée
nums1 = [3, 8, 1]nums2 = [1, 6, 3, 8, 2]
Sortie
[8, -1, 6]
Explication
Après le 3 dans nums2 viennent 8 et 2, et 8 est le premier nombre supérieur à 3. Seul 2 suit le 8, donc 8 reçoit -1. La valeur juste après 1 est 6, qui est déjà supérieure.

lock icon+14 tests cachés à la soumission

challenge icon

Pour aller plus loin

Pour chaque position de nums2, peux-tu renvoyer le nombre d’étapes vers la droite qui séparent cette position de son prochain élément supérieur, en un seul parcours ?

Réinitialiser le code
def nextGreaterElement(nums1, nums2):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

nums1 = [3, 8, 1]
nums2 = [1, 6, 3, 8, 2]

Attendu

[8, -1, 6]