A técnica de dois ponteiros usa dois índices que se movem através de uma sequência para resolver problemas em uma única passagem — transformando muitas soluções O(n²) de força bruta em O(n).
A ideia
Mantenha dois ponteiros (frequentemente nas extremidades, ou um lento e um rápido) e mova-os com base em uma condição, reduzindo o trabalho sem rescan.
Exemplo: par que soma a um alvo em um array ordenado
():
lo, hi = , (arr) -
lo < hi:
s = arr[lo] + arr[hi]
s == target:
(lo, hi)
s < target:
lo +=
:
hi -=
two_sum_sorted([, , , , ], )
