Two Pointers

Fundamentals

Opposite or parallel pointers traversing sequences in linear time O(N)

225 problems·62 Easy·132 Medium·31 Hard
Pattern Study Guide & Cheat Sheet
▼

Search pairs or reverse sequences by moving two indices inward or in parallel, pruning suboptimal options in O(1) time without nested loops.

Core Invariant: Maintain the search space invariant: elements outside [left, right] have already been evaluated and eliminated. Advance whichever pointer monotonically improves or resolves the target condition.

Recognize it (Keywords & Signals)
  • Array is sorted and you need to find a pair, triplet, or target sum
  • Palindrome verification, string reversal, or inward symmetry checking
  • Partitioning an array around a pivot (Dutch National Flag, sort colors)
  • Trapping rainwater / container boundaries where width and height constrain area
When NOT to use

Array is unsorted and problem requires contiguous subarrays with sum K (especially with negative numbers; use Prefix Sum + Hash Map instead).

How to solve (Step-by-step)
  1. 1.Initialize left = 0 and right = len(nums) - 1 (for opposite-direction pointers).
  2. 2.In a `while left < right` loop, evaluate the current state: curr_sum = nums[left] + nums[right].
  3. 3.If target matched, record answer or return immediately.
  4. 4.If curr_sum < target, advance `left += 1` to increase sum; if curr_sum > target, decrement `right -= 1` to decrease sum.
  5. 5.Skip duplicate values using inner while loops when unique tuples are required (e.g. 3Sum).
Watch for (Interview Traps)
  • Off-by-one in loop condition (`left < right` vs `left <= right` when element reuse is prohibited)
  • Forgetting to skip duplicate elements inside the loop when unique triplets/quadruplets are needed
  • Not advancing pointers inside duplicate skip loops causing infinite loops
Opposite-Direction Two Pointers
def two_pointers_search(nums: list[int], target: int) -> list[int]:
    # Prerequisite: array must be sorted
    left, right = 0, len(nums) - 1
    
    while left < right:
        curr_sum = nums[left] + nums[right]
        if curr_sum == target:
            return [left, right]
        elif curr_sum < target:
            left += 1   # Need larger sum -> move left inward
        else:
            right -= 1  # Need smaller sum -> move right inward
            
    return []
Cost
O(n) [or O(n log n) if sorting is required] · O(1) auxiliary memory (Sort in-place to preserve O(1) space guarantee.)
Canonical problems
#167 Two Sum II - Input Array Is Sorted: Inward movement directly targets sum
#15 3Sum: Fix one element, then run Two Pointers on sorted remainder
#11 Container With Most Water: Always move the shorter line inward
#125 Valid Palindrome: Compare characters inward while skipping non-alphanumerics
Easy·142 companies·Max freq 100%·Acc 57.8%
cienaEYWestern Digital+139
Medium·89 companies·Max freq 100%·Acc 38.2%
CiscoHSBCBending Spoons+86
Hard·84 companies·Max freq 100%·Acc 67.7%
Goldman SachsThousandEyesPublicis Sapient+81
#153Sum
Medium·65 companies·Max freq 100%·Acc 39.4%
GoToSingleStoreWissen Technology+62
Medium·64 companies·Max freq 100%·Acc 60.4%
PubMaticTableauPornhub+61
Medium·51 companies·Max freq 100%·Acc 52.7%
SplunkSnapWorldQuant+48
Hard·49 companies·Max freq 100%·Acc 0.6%
CohesitySplunkTinder+46
Easy·47 companies·Max freq 100%·Acc 53.7%
CleverTapBCGCadence+44
Easy·47 companies·Max freq 100%·Acc 64.1%
LTIMindtreeJTGChewy+44
Medium·40 companies·Max freq 100%·Acc 70.0%
TargetPocket GemsSlice+37
Easy·39 companies·Max freq 100%·Acc 55.2%
SquarespaceAMDHubspot+36
Medium·35 companies·Max freq 100%·Acc 45.6%
PornhubZeptoMeta+32
Medium·32 companies·Max freq 100%·Acc 57.0%
PhilipsYelpEricsson+29
Easy·31 companies·Max freq 100%·Acc 59.9%
NikeSnowflakeJump Trading+28
Medium·29 companies·Max freq 100%·Acc 73.0%
CitadelNetskopePure Storage+26
Easy·28 companies·Max freq 100%·Acc 54.7%
YahooNeetCode 150Blind 75+25
Easy·27 companies·Max freq 100%·Acc 63.2%
UdemyWissen TechnologyImpetus+24
Medium·27 companies·Max freq 100%·Acc 45.2%
FiverrBoxApple+24
Medium·24 companies·Max freq 90%·Acc 64.6%
NianticNikeNeetCode 150+21
#184Sum
Medium·22 companies·Max freq 88%·Acc 41.1%
SingleStoreCloudflareNvidia+19
Medium·20 companies·Max freq 88%·Acc 0.5%
YandexCoupangCashfree+17
Easy·19 companies·Max freq 100%·Acc 70.5%
HelixJPMorgan ChaseDell+16
Medium·19 companies·Max freq 97%·Acc 65.4%
NeetCode 150NeetCode 150tcs+16
Medium·19 companies·Max freq 95%·Acc 49.2%
NeetCode 150NeetCode 150Yandex+16
Medium·19 companies·Max freq 89%·Acc 65.7%
NeetCode 150Blind 75NeetCode 150+16
Easy·18 companies·Max freq 100%·Acc 46.9%
Pocket GemsLG Electronicstcs+15
Easy·18 companies·Max freq 93%·Acc 58.3%
IXLAMDIntel+15
Medium·17 companies·Max freq 100%·Acc 63.3%
MolocoTwo SigmaWix+14
Hard·17 companies·Max freq 100%·Acc 64.1%
Media.netMedia.netOtter.ai+14
Easy·17 companies·Max freq 92%·Acc 73.9%
InstacartUberWhatnot+14
Easy·17 companies·Max freq 88%·Acc 0.5%
Fractal AnalyticsTinkoffWix+14
Easy·16 companies·Max freq 100%·Acc 44.5%
MetaWhatnotFortinet+13
Easy·16 companies·Max freq 82%·Acc 81.0%
QualcommtcsSiemens+13
Medium·15 companies·Max freq 87%·Acc 0.6%
SigmoidUiPathIBM+12
Easy·14 companies·Max freq 87%·Acc 50.0%
RokuMicrostrategyAgoda+11
Medium·14 companies·Max freq 79%·Acc 58.5%
PaytmVMwareAmerican Express+11
Easy·14 companies·Max freq 72%·Acc 61.7%
EPAM SystemsTwitchDeloitte+11
Easy·13 companies·Max freq 88%·Acc 82.1%
Walmart LabsAMDAccenture+10
Easy·13 companies·Max freq 75%·Acc 64.2%
AirbnbWells FargoSamsung+10
Medium·13 companies·Max freq 69%·Acc 0.8%
MicrostrategyServiceNowVisa+10
Medium·12 companies·Max freq 100%·Acc 73.1%
VerkadaMixpanelNuro+9
Medium·12 companies·Max freq 100%·Acc 49.0%
HubspotToastLinkedIn+9
Medium·12 companies·Max freq 100%·Acc 0.5%
HarnessDream11Bloomberg+9
Medium·12 companies·Max freq 80%·Acc 89.9%
MetaNvidiaNuro+9
Medium·12 companies·Max freq 78%·Acc 42.2%
AndurilZeta GlobalAdobe+9
Medium·12 companies·Max freq 66%·Acc 0.4%
DoorDashMitsogoMorgan Stanley+9
Easy·12 companies·Max freq 63%·Acc 0.6%
GoogleBloombergMicrosoft+9
Medium·11 companies·Max freq 100%·Acc 77.6%
BrazeRobloxCapital One+8
Medium·11 companies·Max freq 100%·Acc 46.7%
SonatusNextdoorZoho+8
Medium·11 companies·Max freq 100%·Acc 52.1%
BlackBuckArista NetworksBloomberg+8
50 displayed (of 50 matching)Filtered: All Companies

Top Companies Testing Two Pointers

Browse company-specific interview problem lists and recency breakdowns:

Explore All 22 DSA Coding Patterns

Master core algorithmic patterns tested in FAANG & Big Tech coding interviews.

Patterns Hub

Two Pointers frequently asked questions

What is the Two Pointers pattern in coding interviews?

Opposite or parallel pointers traversing sequences in linear time O(N) It is categorized under Fundamentals and features 225 curated interview problems across Easy (62), Medium (132), and Hard (31) difficulties.

Which tech companies frequently test Two Pointers?

Companies frequently asking Two Pointers questions include Google, Amazon, Meta, Microsoft, Bloomberg, TikTok.

How do I master the Two Pointers pattern?

Start by studying the algorithmic strategy and template code, then practice Easy and Medium problems before attempting Hard problems under timed conditions.