La tecnica two-pointer utilizza due indici che si muovono attraverso una sequenza per risolvere problemi in un'unica passata — trasformando molte soluzioni di brute-force O(n²) in O(n).
L'idea
Mantenere due puntatori (spesso agli estremi, oppure uno lento e uno veloce) e muoverli in base a una condizione, riducendo il lavoro senza riscansionare.
Esempio: trovare una coppia che somma a un valore target in un array ordinato
():
lo, hi = , (arr) -
lo < hi:
s = arr[lo] + arr[hi]
s == target:
(lo, hi)
s < target:
lo +=
:
hi -=
two_sum_sorted([, , , , ], )
