เทคนิค สองตัวชี้ ใช้สองดัชนีที่เคลื่อนไหวผ่านลำดับเพื่อแก้ไขปัญหาในการผ่านครั้งเดียว — เปลี่ยนวิธีแก้ปัญหา brute-force 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([, , , , ], )
