دو پوائنٹر تکنیک دو انڈیکسز استعمال کرتی ہے جو ایک ترتیب میں حرکت کرتے ہوئے مسائل کو ایک پاس میں حل کرتے ہیں — بہت سے O(n²) brute-force حل کو O(n) میں تبدیل کرتے ہوئے۔
نظریہ
دو pointers رکھیں (اکثر سرے پر، یا ایک سست اور ایک تیز) اور انہیں ایک شرط کی بنیاد پر حرکت دیں، کام کو کم کریں بغیر دوبارہ سکیننگ کے۔
مثال: ایک ترتیب شدہ array میں ہدف تک جمع کرنے والے جوڑے
():
lo, hi = , (arr) -
lo < hi:
s = arr[lo] + arr[hi]
s == target:
(lo, hi)
s < target:
lo +=
:
hi -=
two_sum_sorted([, , , , ], )
