Menu
CoddyTech

Two Sum II: Sorted Input

Ricevi un array di numeri interi numbers ordinato in ordine non decrescente e un numero intero target. Esiste esattamente una coppia di posizioni diverse con due valori la cui somma è uguale a target. Restituisci quelle due posizioni come indici a base 0, prima l’indice più piccolo.

Funzione

twoSumSorted(numbers: integer-array, target: integer) → integer-array
numbersinteger-array
l’array ordinato di numeri interi
targetinteger
la somma che i due valori devono raggiungere
Restituisceinteger-array
i due indici a base zero [i, j] con i < j e numbers[i] + numbers[j] == target

Vincoli

  • 2 ≤ numbers.length ≤ 104
  • -5 × 108 ≤ numbers[i] ≤ 5 × 108
  • -109 ≤ target ≤ 109
  • numbers è ordinato in ordine non decrescente.
  • Esiste esattamente una coppia di indici i < j tale che numbers[i] + numbers[j] == target.

Esempi

Input
numbers = [-4, 1, 3, 8, 12]target = 9
Output
[1, 3]
Spiegazione
1 si trova all'indice 1 e 8 all'indice 3, e 1 + 8 = 9. Nessun'altra coppia raggiunge 9: per esempio, -4 + 12 = 8.

lock icon+13 test nascosti all’invio

challenge icon

Per approfondire

Riesci a risolverlo in tempo O(n) con O(1) memoria aggiuntiva?

Ripristina il codice
def twoSumSorted(numbers, target):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

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

Atteso

[1, 3]