Backtracking LeetCode Problems: All 105, With Python Solutions
Every problem in this library that LeetCode tags Backtracking — 105 in total, 86 of them with a complete Python solution, a worked example and the time and space complexity of the approach.
- 105 problems
- 3 Easy
- 71 Medium
- 31 Hard
How Backtracking problems are solved
A tag names the subject, not the method. These pattern hubs cover the techniques that actually solve Backtracking problems — each one explains the approach, gives a Python template and states its complexity.
- Backtracking — Build candidates one choice at a time and abandon a branch the moment it cannot work.
Backtracking problems by difficulty
Problems with a complete Python solution are listed first, then by ascending problem number.
Easy (3)
| # | Problem | Difficulty | Topics |
|---|---|---|---|
| 257 | Binary Tree Paths | Easy | Tree, Depth-First Search, String +2 |
| 401 | Binary Watch | Easy | Bit Manipulation, Backtracking |
| 1863 | Sum of All Subset XOR Totals | Easy | Bit Manipulation, Array, Math +3 |
Medium (71)
| # | Problem | Difficulty | Topics |
|---|---|---|---|
| 17 | Letter Combinations of a Phone Number | Medium | Hash Table, String, Backtracking |
| 22 | Generate Parentheses | Medium | String, Dynamic Programming, Backtracking |
| 39 | Combination Sum | Medium | Array, Backtracking |
| 40 | Combination Sum II | Medium | Array, Backtracking |
| 46 | Permutations | Medium | Array, Backtracking |
| 47 | Permutations II | Medium | Array, Backtracking, Sorting |
| 77 | Combinations | Medium | Backtracking |
| 78 | Subsets | Medium | Bit Manipulation, Array, Backtracking |
| 79 | Word Search | Medium | Depth-First Search, Array, String +2 |
| 89 | Gray Code | Medium | Bit Manipulation, Math, Backtracking |
| 90 | Subsets II | Medium | Bit Manipulation, Array, Backtracking |
| 93 | Restore IP Addresses | Medium | String, Backtracking |
| 95 | Unique Binary Search Trees II | Medium | Tree, Binary Search Tree, Dynamic Programming +2 |
| 113 | Path Sum II | Medium | Tree, Depth-First Search, Backtracking +1 |
| 131 | Palindrome Partitioning | Medium | String, Dynamic Programming, Backtracking |
| 216 | Combination Sum III | Medium | Array, Backtracking |
| 306 | Additive Number | Medium | String, Backtracking |
| 357 | Count Numbers with Unique Digits | Medium | Math, Dynamic Programming, Backtracking |
| 473 | Matchsticks to Square | Medium | Bit Manipulation, Array, Dynamic Programming +2 |
| 491 | Non-decreasing Subsequences | Medium | Bit Manipulation, Array, Hash Table +1 |
| 494 | Target Sum | Medium | Array, Dynamic Programming, Backtracking |
| 526 | Beautiful Arrangement | Medium | Bit Manipulation, Array, Dynamic Programming +2 |
| 638 | Shopping Offers | Medium | Bit Manipulation, Memoization, Array +3 |
| 698 | Partition to K Equal Sum Subsets | Medium | Bit Manipulation, Memoization, Array +3 |
| 756 | Pyramid Transition Matrix | Medium | Bit Manipulation, Hash Table, String +1 |
| 784 | Letter Case Permutation | Medium | Bit Manipulation, String, Backtracking |
| 797 | All Paths From Source to Target | Medium | Depth-First Search, Breadth-First Search, Graph +1 |
| 816 | Ambiguous Coordinates | Medium | String, Backtracking, Enumeration |
| 842 | Split Array into Fibonacci Sequence | Medium | String, Backtracking |
| 949 | Largest Time for Given Digits | Medium | Array, String, Backtracking +1 |
| 967 | Numbers With Same Consecutive Differences | Medium | Breadth-First Search, Backtracking |
| 988 | Smallest String Starting From Leaf | Medium | Tree, Depth-First Search, String +2 |
| 1079 | Letter Tile Possibilities | Medium | Hash Table, String, Backtracking +1 |
| 1219 | Path with Maximum Gold | Medium | Array, Backtracking, Matrix |
| 1238 | Circular Permutation in Binary Representation | Medium | Bit Manipulation, Math, Backtracking |
| 1239 | Maximum Length of a Concatenated String with Unique Characters | Medium | Bit Manipulation, Array, String +1 |
| 1286 | Iterator for Combination | Medium | Design, String, Backtracking +1 |
| 1415 | The k-th Lexicographical String of All Happy Strings of Length n | Medium | String, Backtracking |
| 1593 | Split a String Into the Max Number of Unique Substrings | Medium | Hash Table, String, Backtracking |
| 1718 | Construct the Lexicographically Largest Valid Sequence | Medium | Array, Backtracking |
| 1774 | Closest Dessert Cost | Medium | Array, Dynamic Programming, Backtracking |
| 1849 | Splitting a String Into Descending Consecutive Values | Medium | String, Backtracking, Enumeration |
| 1947 | Maximum Compatibility Score Sum | Medium | Bit Manipulation, Array, Dynamic Programming +2 |
| 1980 | Find Unique Binary String | Medium | Array, Hash Table, String +1 |
| 1986 | Minimum Number of Work Sessions to Finish the Tasks | Medium | Bit Manipulation, Array, Dynamic Programming +2 |
| 2002 | Maximum Product of the Length of Two Palindromic Subsequences | Medium | Bit Manipulation, String, Dynamic Programming +2 |
| 2044 | Count Number of Maximum Bitwise-OR Subsets | Medium | Bit Manipulation, Array, Backtracking +1 |
| 2048 | Next Greater Numerically Balanced Number | Medium | Hash Table, Math, Backtracking +2 |
| 2178 | Maximum Split of Positive Even Integers | Medium | Greedy, Math, Backtracking |
| 2212 | Maximum Points in an Archery Competition | Medium | Bit Manipulation, Array, Backtracking +1 |
| 2305 | Fair Distribution of Cookies | Medium | Bit Manipulation, Array, Dynamic Programming +2 |
| 2375 | Construct Smallest Number From DI String | Medium | Stack, Greedy, String +1 |
| 2397 | Maximum Rows Covered by Columns | Medium | Bit Manipulation, Array, Backtracking +2 |
| 2597 | The Number of Beautiful Subsets | Medium | Array, Hash Table, Math +4 |
| 2698 | Find the Punishment Number of an Integer | Medium | Math, Backtracking |
| 2708 | Maximum Strength of a Group | Medium | Greedy, Bit Manipulation, Array +4 |
| 2767 | Partition String Into Minimum Beautiful Substrings | Medium | Hash Table, String, Dynamic Programming +1 |
| 254 | Factor CombinationsPremium | Medium | Backtracking |
| 267 | Palindrome Permutation IIPremium | Medium | Hash Table, String, Backtracking |
| 291 | Word Pattern IIPremium | Medium | Hash Table, String, Backtracking |
| 294 | Flip Game IIPremium | Medium | Memoization, Math, Dynamic Programming +2 |
| 320 | Generalized AbbreviationPremium | Medium | Bit Manipulation, String, Backtracking |
| 351 | Android Unlock PatternsPremium | Medium | Bit Manipulation, Dynamic Programming, Backtracking +1 |
| 681 | Next Closest TimePremium | Medium | Hash Table, String, Backtracking +1 |
| 1066 | Campus Bikes IIPremium | Medium | Bit Manipulation, Array, Dynamic Programming +2 |
| 1087 | Brace ExpansionPremium | Medium | Stack, Breadth-First Search, String +2 |
| 1215 | Stepping NumbersPremium | Medium | Breadth-First Search, Math, Backtracking |
| 1258 | Synonymous SentencesPremium | Medium | Sort, Union Find, Array +3 |
| 2152 | Minimum Number of Lines to Cover PointsPremium | Medium | Bit Manipulation, Geometry, Array +5 |
| 2664 | The Knight’s TourPremium | Medium | Array, Backtracking, Matrix |
| 2992 | Number of Self-Divisible PermutationsPremium | Medium | Bit Manipulation, Array, Math +4 |
Hard (31)
| # | Problem | Difficulty | Topics |
|---|---|---|---|
| 37 | Sudoku Solver | Hard | Array, Hash Table, Backtracking +1 |
| 51 | N-Queens | Hard | Array, Backtracking |
| 52 | N-Queens II | Hard | Backtracking |
| 126 | Word Ladder II | Hard | Breadth-First Search, Hash Table, String +1 |
| 140 | Word Break II | Hard | Trie, Memoization, Array +4 |
| 212 | Word Search II | Hard | Trie, Array, String +2 |
| 282 | Expression Add Operators | Hard | Math, String, Backtracking |
| 301 | Remove Invalid Parentheses | Hard | Breadth-First Search, String, Backtracking |
| 679 | 24 Game | Hard | Array, Math, Backtracking |
| 691 | Stickers to Spell Word | Hard | Bit Manipulation, Memoization, Array +5 |
| 773 | Sliding Puzzle | Hard | Breadth-First Search, Memoization, Array +3 |
| 980 | Unique Paths III | Hard | Bit Manipulation, Array, Backtracking +1 |
| 996 | Number of Squareful Arrays | Hard | Bit Manipulation, Array, Hash Table +4 |
| 1096 | Brace Expansion II | Hard | Stack, Breadth-First Search, Hash Table +3 |
| 1240 | Tiling a Rectangle with the Fewest Squares | Hard | Backtracking |
| 1255 | Maximum Score Words Formed by Letters | Hard | Bit Manipulation, Array, Hash Table +5 |
| 1307 | Verbal Arithmetic Puzzle | Hard | Array, Math, String +1 |
| 1467 | Probability of a Two Boxes Having The Same Number of Distinct Balls | Hard | Array, Math, Dynamic Programming +3 |
| 1601 | Maximum Number of Achievable Transfer Requests | Hard | Bit Manipulation, Array, Backtracking +1 |
| 1655 | Distribute Repeating Integers | Hard | Bit Manipulation, Array, Dynamic Programming +2 |
| 1723 | Find Minimum Time to Finish All Jobs | Hard | Bit Manipulation, Array, Dynamic Programming +2 |
| 1799 | Maximize Score After N Operations | Hard | Bit Manipulation, Array, Math +4 |
| 2014 | Longest Subsequence Repeated k Times | Hard | Greedy, String, Backtracking +2 |
| 2056 | Number of Valid Move Combinations On Chessboard | Hard | Array, String, Backtracking +1 |
| 2065 | Maximum Path Quality of a Graph | Hard | Graph, Array, Backtracking |
| 2151 | Maximum Good People Based on Statements | Hard | Bit Manipulation, Array, Backtracking +1 |
| 411 | Minimum Unique Word AbbreviationPremium | Hard | Bit Manipulation, Array, String +1 |
| 425 | Word SquaresPremium | Hard | Trie, Array, String +1 |
| 465 | Optimal Account BalancingPremium | Hard | Bit Manipulation, Array, Dynamic Programming +2 |
| 489 | Robot Room CleanerPremium | Hard | Backtracking, Interactive |
| 1088 | Confusing Number IIPremium | Hard | Math, Backtracking |
Keep exploring
- Array1,569
- String672
- Hash Table588
- Math485
- Dynamic Programming481
- Sorting392
- Greedy346
- Depth-First Search289
- Binary Search253
- Database249
- Tree225
- Breadth-First Search223
- Matrix216
- Two Pointers201
- Bit Manipulation194
- Binary Tree174
- Heap (Priority Queue)163
- Prefix Sum157
- Stack157
- Simulation144
- Graph138
- Counting126
- Design122
- Sliding Window116
When the Backtracking problem arrives live
Stealth Interview is a desktop app for macOS and Windows. It reads the coding problem off your screen, returns a working solution with a step-by-step explanation and its time and space complexity, and transcribes what the interviewer is saying — while staying invisible to screen sharing.