Техника двух указателей использует два индекса, которые движутся по последовательности, чтобы решить задачи за один проход — превращая множество решений O(n²) на силовой перебор в O(n).
Идея
Сохраняйте два указателя (часто на концах, или один медленный и один быстрый) и перемещайте их на основе условия, сокращая работу без повторного сканирования.
Пример: пара, которая суммируется до целевого значения в отсортированном массиве
():
lo, hi = , (arr) -
lo < hi:
s = arr[lo] + arr[hi]
s == target:
(lo, hi)
s < target:
lo +=
:
hi -=
two_sum_sorted([, , , , ], )
