ਦੋ-ਪੁਆਇੰਟਰ ਤਕਨੀਕ ਦੋ ਸੂਚਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ ਜੋ ਇੱਕ ਕ੍ਰਮ ਵਿੱਚ ਚਲਦੀ ਹੈ ਤਾਂ ਕਿ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਇੱਕ ਮਾਰ ਵਿੱਚ ਹੱਲ ਕਰ ਸਕੇ — ਬਹੁਤ ਸਾਰੇ 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([, , , , ], )
