Menu
CoddyTech

Two Sum II: Sorted Input

Vous recevez un tableau d’entiers numbers trié par ordre non décroissant, ainsi qu’un entier target. Une seule paire de positions distinctes contient deux valeurs dont la somme est égale à target. Renvoyez ces deux positions sous forme d’indices commençant à 0, en plaçant le plus petit indice en premier.

Fonction

twoSumSorted(numbers: integer-array, target: integer) → integer-array
numbersinteger-array
le tableau trié d’entiers
targetinteger
la somme des deux valeurs doit atteindre
Renvoieinteger-array
les deux indices à base zéro [i, j] tels que i < j et numbers[i] + numbers[j] == target

Contraintes

  • 2 ≤ numbers.length ≤ 104
  • -5 × 108 ≤ numbers[i] ≤ 5 × 108
  • -109 ≤ target ≤ 109
  • numbers est trié par ordre non décroissant.
  • Il existe exactement une paire d’indices i < j telle que numbers[i] + numbers[j] == target.

Exemples

Entrée
numbers = [-4, 1, 3, 8, 12]target = 9
Sortie
[1, 3]
Explication
1 se trouve à l’indice 1 et 8 à l’indice 3, et 1 + 8 = 9. Aucune autre paire n’atteint 9 : par exemple, -4 + 12 = 8.

lock icon+13 tests cachés à la soumission

challenge icon

Pour aller plus loin

Peux-tu résoudre ce problème en O(n) avec O(1) mémoire supplémentaire ?

Réinitialiser le code
def twoSumSorted(numbers, target):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

numbers = [-4, 1, 3, 8, 12]
target = 9

Attendu

[1, 3]