Backtracking & Exhaustive Search

Advanced & DP

Combinations, permutations, and constraint satisfaction through pruned search trees

117 problems·3 Easy·77 Medium·37 Hard
Pattern Study Guide & Cheat Sheet

Explore all combinatorial possibilities through depth-first recursion, systematically making a choice, exploring its consequences, and pruning or undoing the choice (backtracking).

Core Invariant: DFS on a Decision Tree: at each node: 1) Check base case; 2) Iterate over choices; 3) Prune invalid choices early; 4) Make choice; 5) Recurse; 6) Undo choice (restore state).

Recognize it (Keywords & Signals)
  • Generate all permutations, combinations, or subsets
  • Find all valid configurations (N-Queens, Sudoku)
  • Word search in a 2D grid
  • Generate parentheses
  • Partition array into equal sum subsets
When NOT to use

Only the optimal value (count, min, max) is needed, not the actual paths/subsets (usually DP instead of backtracking!).

How to solve (Step-by-step)
  1. 1.Define `backtrack(start_idx, current_path)`.
  2. 2.Base case: if `current_path` meets length or target, add a deep copy `ans.append(list(current_path))` and return.
  3. 3.Loop through candidate elements from `start_idx` to `n`.
  4. 4.Pruning: skip if candidate exceeds remaining budget or is duplicate: `if i > start_idx and nums[i] == nums[i-1]: continue`.
  5. 5.Choose: `current_path.append(nums[i])`.
  6. 6.Recurse: `backtrack(i + 1, current_path)`.
  7. 7.Unchoose: `current_path.pop()`.
Watch for (Interview Traps)
  • Appending `path` instead of `path.copy()` or `list(path)` (results in empty arrays after unchoose pops)
  • Forgetting to sort before skipping duplicates (`nums[i] == nums[i-1]`)
  • Incorrect recursion index: `backtrack(start + 1)` instead of `backtrack(i + 1)` in recursive call
Combinations / Subsets with Pruning
def subsets_with_dup(nums: list[int]) -> list[list[int]]:
    nums.sort()  # Sorting is mandatory to group duplicates for pruning
    result = []
    
    def backtrack(start: int, path: list[int]) -> None:
        # Every node in the decision tree is a valid subset
        result.append(list(path))  # Important: copy current path!
        
        for i in range(start, len(nums)):
            # Prune duplicate branches at the same tree level
            if i > start and nums[i] == nums[i - 1]:
                continue
                
            path.append(nums[i])        # Make choice
            backtrack(i + 1, path)      # Explore choice (i + 1 prevents reuse)
            path.pop()                  # Undo choice (backtrack)
            
    backtrack(0, [])
    return result
Cost
O(2^n) subsets, O(n!) permutations · O(n) recursion call stack depth (Pruning invalid branches early is crucial for passing time limits.)
Canonical problems
#78 Subsets: Explore 2^n include/exclude decision tree
#46 Permutations: Explore all n! orderings using visited set
#39 Combination Sum: Allow reuse of same element with target reduction
#51 N-Queens: Prune attacks along cols, positive diagonals, negative diagonals
Medium·43 companies·Max freq 100%·Acc 78.9%
ZenefitsTexas InstrumentsShift Technology+40
Medium·40 companies·Max freq 100%·Acc 66.4%
DropboxTrexquantEpic Systems+37
Medium·39 companies·Max freq 100%·Acc 47.7%
FaireKaratNeetCode 150+36
Medium·30 companies·Max freq 100%·Acc 76.8%
Juniper NetworksHPEPure+27
Medium·28 companies·Max freq 81%·Acc 82.1%
WorkdayNeetCode 150NeetCode 150+25
Hard·24 companies·Max freq 89%·Acc 38.6%
SnowflakeCiscoTwo Sigma+21
Medium·23 companies·Max freq 100%·Acc 82.5%
CoupangFiverrNeetCode 150+20
Medium·20 companies·Max freq 97%·Acc 56.4%
Arista NetworksNvidiaAdobe+17
Hard·19 companies·Max freq 100%·Acc 55.8%
XDropboxX+16
Hard·18 companies·Max freq 100%·Acc 65.6%
ConfluentSnapSnap+15
Medium·18 companies·Max freq 100%·Acc 59.7%
RakutenSnapSnap+15
Hard·18 companies·Max freq 94%·Acc 76.0%
MastercardNeetCode 150NeetCode 150+15
Hard·16 companies·Max freq 100%·Acc 27.8%
YelpOktaLyft+13
Medium·14 companies·Max freq 100%·Acc 0.7%
scalerNeetCode 150NeetCode 150+11
Hard·13 companies·Max freq 100%·Acc 50.5%
PinterestZScalerCitadel+10
Medium·12 companies·Max freq 75%·Acc 52.5%
MyntraNeetCode 150NeetCode 150+9
Medium·11 companies·Max freq 79%·Acc 61.6%
NeetCode 150NeetCode 150UiPath+8
Hard·10 companies·Max freq 100%·Acc 37.4%
myKaarmascalerZeta Global+7
Hard·10 companies·Max freq 100%·Acc 79.0%
ZenefitsLiftoffDeutsche Bank+7
Hard·10 companies·Max freq 76%·Acc 50.0%
MillenniumDeliverooMeta+7
Medium·10 companies·Max freq 63%·Acc 62.5%
Arista NetworksPalo Alto NetworksFlipkart+7
Medium·9 companies·Max freq 100%·Acc 42.1%
RackspacePhonePeeBay+6
Medium·9 companies·Max freq 50%·Acc 63.7%
LinkedInTikTokMicrosoft+6
Easy·8 companies·Max freq 89%·Acc 69.0%
RevolutCapital OneApple+5
Medium·8 companies·Max freq 88%·Acc 55.2%
SnapSnapGoogle+5
Medium·8 companies·Max freq 75%·Acc 38.8%
LinkedInZeta GlobalAmazon+5
Medium·8 companies·Max freq 50%·Acc 74.8%
TikTokInfosysMeta+5
Medium·7 companies·Max freq 100%·Acc 75.9%
YelpMetaTikTok+4
Medium·7 companies·Max freq 100%·Acc 45.8%
GuidewireAmerican ExpressGeico+4
Hard·7 companies·Max freq 90%·Acc 43.4%
PinterestMetaGoogle+4
Hard·7 companies·Max freq 79%·Acc 59.6%
RokuGoogleUber+4
Hard·7 companies·Max freq 76%·Acc 74.5%
AirbnbNvidiaUber+4
Medium·7 companies·Max freq 66%·Acc 64.9%
VisaHashedInRippling+4
Medium·7 companies·Max freq 64%·Acc 89.5%
BNY MellonCitadelGoogle+4
Hard·7 companies·Max freq 63%·Acc 78.0%
MetaWaymoLinkedIn+4
Hard·7 companies·Max freq 52%·Acc 82.9%
DatabricksMetaAmazon+4
Medium·6 companies·Max freq 100%·Acc 54.8%
PayPal HoneyGrowwPalo Alto Networks+3
Medium·6 companies·Max freq 94%·Acc 52.6%
MathWorksCoupangAirbnb+3
Medium·6 companies·Max freq 90%·Acc 66.9%
NianticStripeAnduril+3
Medium·6 companies·Max freq 39%·Acc 56.0%
ZohoMicrosoftGoogle+3
Hard·5 companies·Max freq 92%·Acc 62.6%
SAPAppleDoorDash+2
Medium·5 companies·Max freq 90%·Acc 63.1%
SprinklrBloombergGoogle+2
Hard·5 companies·Max freq 88%·Acc 0.5%
AccentureGoogleMicrosoft+2
Medium·5 companies·Max freq 77%·Acc 59.3%
FlipkartTekionAmazon+2
Medium·5 companies·Max freq 63%·Acc 83.7%
BloombergNetflixAmazon+2
Medium·5 companies·Max freq 59%·Acc 0.9%
PaytmAmazonBloomberg+2
Hard·5 companies·Max freq 53%·Acc 46.0%
PinterestAmazonMicrosoft+2
Easy·5 companies·Max freq 52%·Acc 90.1%
AdobeAmazonMicrosoft+2
Medium·5 companies·Max freq 41%·Acc 68.5%
SalesforceGoldman SachsGoogle+2
Medium·5 companies·Max freq 38%·Acc 83.5%
BloombergOracleGoogle+2
Medium·5 companies·Max freq 38%·Acc 87.1%
MicrosoftBloombergGoogle+2
Medium·5 companies·Max freq 38%·Acc 65.3%
IBMAmazonBloomberg+2
Medium·5 companies·Max freq 28%·Acc 62.8%
MetaAmazonGoogle+2
Medium·5 companies·Max freq 28%·Acc 55.9%
GoogleMetaAmazon+2
Medium·5 companies·Max freq 25%·Acc 72.6%
MetaGoogleAmazon+2
Easy·5 companies·Max freq 25%·Acc 65.8%
GoogleBloombergAmazon+2
Medium·5 companies·Max freq 25%·Acc 81.2%
MicrosoftGoogleMeta+2
Medium·5 companies·Max freq 25%·Acc 68.7%
GoogleMetaAmazon+2
Hard·4 companies·Max freq 100%·Acc 37.6%
Lowe'sLowe'sMedia.net+1
Medium·4 companies·Max freq 100%·Acc 0.6%
CruiseCruiseMoveworks+1
Medium·4 companies·Max freq 100%·Acc 62.9%
YahooAmazonGoogle+1
Hard·4 companies·Max freq 89%·Acc 51.0%
IXLTikTokMeta+1
Medium·4 companies·Max freq 75%·Acc 50.9%
InfosysAmazonBloomberg+1
Medium·4 companies·Max freq 28%·Acc 73.5%
AmazonMicrosoftGoogle+1
Medium·4 companies·Max freq 25%·Acc 81.7%
BloombergGoogleAmazon+1
Medium·3 companies·Max freq 100%·Acc 26.7%
Media.netMedia.netGoogle
Medium·3 companies·Max freq 100%·Acc 34.1%
Epic SystemsGoogleMeta
Hard·3 companies·Max freq 100%·Acc 52.6%
TuSimpleOracleMicrosoft
Medium·3 companies·Max freq 100%·Acc 36.0%
LiveRampZohoMicrosoft
Hard·3 companies·Max freq 88%·Acc 33.4%
Wells FargoAtlassianGoogle
Medium·3 companies·Max freq 75%·Acc 60.6%
AirbnbGoogleAmazon
Medium·3 companies·Max freq 44%·Acc 85.5%
Goldman SachsAmazonGoogle
Hard·3 companies·Max freq 25%·Acc 81.5%
AmazonBloombergGoogle
Hard·3 companies·Max freq 25%·Acc 71.1%
MetaGoogleAmazon
Hard·3 companies·Max freq 25%·Acc 55.1%
GoogleAmazonBloomberg
Medium·3 companies·Max freq 13%·Acc 58.9%
MetaAmazonGoogle
Hard·2 companies·Max freq 97%·Acc 57.9%
GrowwSprinklr
Hard·2 companies·Max freq 75%·Acc 49.1%
PayPalGoogle
Medium·2 companies·Max freq 63%·Acc 50.6%
LinkedInUber
Medium·2 companies·Max freq 63%·Acc 35.1%
SwiggyAmazon
Hard·2 companies·Max freq 51%·Acc 51.6%
AppleGoogle
Medium·2 companies·Max freq 39%·Acc 70.0%
ZohoAmazon
Medium·2 companies·Max freq 25%·Acc 64.7%
MetaAmazon
Medium·2 companies·Max freq 25%·Acc 52.4%
TikTokGoogle
Medium·2 companies·Max freq 25%·Acc 40.5%
AmazonGoogle
Medium·2 companies·Max freq 25%·Acc 61.3%
GoogleAmazon
Hard·2 companies·Max freq 25%·Acc 40.5%
GoogleAmazon
Hard·2 companies·Max freq 15%·Acc 49.0%
GoogleMeta
Medium·2 companies·Max freq 13%·Acc 40.4%
AmazonGoogle
Medium·1 companies·Max freq 100%·Acc 52.3%
Kakao
Medium·1 companies·Max freq 100%·Acc 32.8%
IVP
Medium·1 companies·Max freq 88%·Acc 44.1%
Morgan Stanley
Medium·1 companies·Max freq 88%·Acc 48.6%
Epic Systems
Medium·1 companies·Max freq 88%·Acc 72.8%
Walmart Labs
Medium·1 companies·Max freq 63%·Acc 72.1%
Salesforce
Hard·1 companies·Max freq 63%·Acc 56.1%
Infosys
Medium·1 companies·Max freq 56%·Acc 55.2%
Oracle
Hard·1 companies·Max freq 51%·Acc 45.5%
tcs
Medium·1 companies·Max freq 50%·Acc 58.2%
Apple
Medium·1 companies·Max freq 50%·Acc 85.9%
Goldman Sachs
Medium·1 companies·Max freq 38%·Acc 72.7%
Microsoft
Hard·1 companies·Max freq 38%·Acc 28.3%
Google
Medium·1 companies·Max freq 38%·Acc 53.9%
Google
Hard·1 companies·Max freq 25%·Acc 64.8%
Amazon
Medium·1 companies·Max freq 25%·Acc 47.3%
Amazon
Medium·1 companies·Max freq 25%·Acc 47.0%
Google
Medium·1 companies·Max freq 25%·Acc 59.8%
Google
Hard·1 companies·Max freq 25%·Acc 63.9%
Google
Hard·1 companies·Max freq 25%·Acc 41.0%
Google
Medium·1 companies·Max freq 25%·Acc 60.5%
Google
Hard·1 companies·Max freq 25%·Acc 54.7%
Google
Medium·1 companies·Max freq 25%·Acc 56.6%
Google
Medium·1 companies·Max freq 25%·Acc 55.9%
Google
Hard·1 companies·Max freq 25%·Acc 47.2%
Google
Medium·1 companies·Max freq 25%·Acc 72.7%
Google
Medium·1 companies·Max freq 25%·Acc 48.9%
Google
Medium·1 companies·Max freq 13%·Acc 35.3%
Meta
Showing 117 of 117 problems in Backtracking & Exhaustive SearchFiltered: All Companies