La técnica de dos punteros utiliza dos índices que se mueven a través de una secuencia para resolver problemas en un solo paso — convirtiendo muchas soluciones O(n²) de fuerza bruta en O(n).
La idea
Mantén dos punteros (a menudo en los extremos, o uno lento y uno rápido) y muévelos según una condición, reduciendo el trabajo sin volver a escanear.
Ejemplo: emparejar suma a un objetivo en un array ordenado
():
lo, hi = , (arr) -
lo < hi:
s = arr[lo] + arr[hi]
s == target:
(lo, hi)
s < target:
lo +=
:
hi -=
two_sum_sorted([, , , , ], )
