双指针 技术使用两个索引在序列中移动,以单次扫描解决问题 — 将许多 O(n²) 的暴力解决方案转变为 O(n)。
核心思想
保持两个指针(通常在两端,或一个慢一个快),根据条件移动它们,缩小工作范围而无需重新扫描。
示例:在有序数组中找到和为目标值的配对
python
():
lo, hi = , (arr) -
lo < hi:
s = arr[lo] + arr[hi]
s == target:
(lo, hi)
s < target:
lo +=
:
hi -=
two_sum_sorted([, , , , ], )
