To-pointer-teknikken bruger to indekser, der bevæger sig gennem en sekvens for at løse problemer i et enkelt pass — og omdanner mange O(n²) brute-force-løsninger til O(n).
Idéen
Hold to pointere (ofte ved enderne, eller en langsom og en hurtig) og flyt dem baseret på en betingelse, hvilket formindsker arbejdet uden at genoptage.
Eksempel: parringssum til et mål i et sorteret array
():
lo, hi = , (arr) -
lo < hi:
s = arr[lo] + arr[hi]
s == target:
(lo, hi)
s < target:
lo +=
:
hi -=
two_sum_sorted([, , , , ], )
