Bit Manipulation LeetCode Problems: All 194, With Python Solutions
Every problem in this library that LeetCode tags Bit Manipulation — 194 in total, 173 of them with a complete Python solution, a worked example and the time and space complexity of the approach.
- 194 problems
- 40 Easy
- 96 Medium
- 58 Hard
How Bit Manipulation problems are solved
A tag names the subject, not the method. These pattern hubs cover the techniques that actually solve Bit Manipulation problems — each one explains the approach, gives a Python template and states its complexity.
- Bit Manipulation — Use XOR, masks and the low-bit trick to replace whole data structures with an integer.
Bit Manipulation problems by difficulty
Problems with a complete Python solution are listed first, then by ascending problem number.
Easy (40)
| # | Problem | Difficulty | Topics |
|---|---|---|---|
| 67 | Add Binary | Easy | Bit Manipulation, Math, String +1 |
| 136 | Single Number | Easy | Bit Manipulation, Array |
| 190 | Reverse Bits | Easy | Bit Manipulation, Divide and Conquer |
| 191 | Number of 1 Bits | Easy | Bit Manipulation, Divide and Conquer |
| 222 | Count Complete Tree Nodes | Easy | Bit Manipulation, Tree, Binary Search +1 |
| 231 | Power of Two | Easy | Bit Manipulation, Recursion, Math |
| 268 | Missing Number | Easy | Bit Manipulation, Array, Hash Table +3 |
| 338 | Counting Bits | Easy | Bit Manipulation, Dynamic Programming |
| 342 | Power of Four | Easy | Bit Manipulation, Recursion, Math |
| 389 | Find the Difference | Easy | Bit Manipulation, Hash Table, String +1 |
| 401 | Binary Watch | Easy | Bit Manipulation, Backtracking |
| 405 | Convert a Number to Hexadecimal | Easy | Bit Manipulation, Math, String |
| 461 | Hamming Distance | Easy | Bit Manipulation |
| 476 | Number Complement | Easy | Bit Manipulation |
| 645 | Set Mismatch | Easy | Bit Manipulation, Array, Hash Table +1 |
| 693 | Binary Number with Alternating Bits | Easy | Bit Manipulation |
| 762 | Prime Number of Set Bits in Binary Representation | Easy | Bit Manipulation, Math |
| 832 | Flipping an Image | Easy | Bit Manipulation, Array, Two Pointers +2 |
| 868 | Binary Gap | Easy | Bit Manipulation |
| 1009 | Complement of Base 10 Integer | Easy | Bit Manipulation |
| 1018 | Binary Prefix Divisible By 5 | Easy | Bit Manipulation, Array |
| 1342 | Number of Steps to Reduce a Number to Zero | Easy | Bit Manipulation, Math |
| 1356 | Sort Integers by The Number of 1 Bits | Easy | Bit Manipulation, Array, Counting +1 |
| 1486 | XOR Operation in an Array | Easy | Bit Manipulation, Math |
| 1684 | Count the Number of Consistent Strings | Easy | Bit Manipulation, Array, Hash Table +2 |
| 1720 | Decode XORed Array | Easy | Bit Manipulation, Array |
| 1763 | Longest Nice Substring | Easy | Bit Manipulation, Hash Table, String +2 |
| 1863 | Sum of All Subset XOR Totals | Easy | Bit Manipulation, Array, Math +3 |
| 2032 | Two Out of Three | Easy | Bit Manipulation, Array, Hash Table |
| 2206 | Divide Array Into Equal Pairs | Easy | Bit Manipulation, Array, Hash Table +1 |
| 2220 | Minimum Bit Flips to Convert Number | Easy | Bit Manipulation |
| 2351 | First Letter to Appear Twice | Easy | Bit Manipulation, Hash Table, String +1 |
| 2506 | Count Pairs Of Similar Strings | Easy | Bit Manipulation, Array, Hash Table +2 |
| 2595 | Number of Even and Odd Bits | Easy | Bit Manipulation |
| 2859 | Sum of Values at Indices With K Set Bits | Easy | Bit Manipulation, Array |
| 2869 | Minimum Operations to Collect Elements | Easy | Bit Manipulation, Array, Hash Table |
| 2917 | Find the K-or of an Array | Easy | Bit Manipulation, Array |
| 2932 | Maximum Strong Pair XOR I | Easy | Bit Manipulation, Trie, Array +2 |
| 2980 | Check if Bitwise OR Has Trailing Zeros | Easy | Bit Manipulation, Array |
| 266 | Palindrome PermutationPremium | Easy | Bit Manipulation, Hash Table, String |
Medium (96)
| # | Problem | Difficulty | Topics |
|---|---|---|---|
| 29 | Divide Two Integers | Medium | Bit Manipulation, Math |
| 78 | Subsets | Medium | Bit Manipulation, Array, Backtracking |
| 89 | Gray Code | Medium | Bit Manipulation, Math, Backtracking |
| 90 | Subsets II | Medium | Bit Manipulation, Array, Backtracking |
| 137 | Single Number II | Medium | Bit Manipulation, Array |
| 187 | Repeated DNA Sequences | Medium | Bit Manipulation, Hash Table, String +3 |
| 201 | Bitwise AND of Numbers Range | Medium | Bit Manipulation |
| 260 | Single Number III | Medium | Bit Manipulation, Array |
| 287 | Find the Duplicate Number | Medium | Bit Manipulation, Array, Two Pointers +1 |
| 318 | Maximum Product of Word Lengths | Medium | Bit Manipulation, Array, String |
| 371 | Sum of Two Integers | Medium | Bit Manipulation, Math |
| 393 | UTF-8 Validation | Medium | Bit Manipulation, Array |
| 397 | Integer Replacement | Medium | Greedy, Bit Manipulation, Memoization +1 |
| 421 | Maximum XOR of Two Numbers in an Array | Medium | Bit Manipulation, Trie, Array +1 |
| 464 | Can I Win | Medium | Bit Manipulation, Memoization, Math +3 |
| 473 | Matchsticks to Square | Medium | Bit Manipulation, Array, Dynamic Programming +2 |
| 477 | Total Hamming Distance | Medium | Bit Manipulation, Array, Math |
| 491 | Non-decreasing Subsequences | Medium | Bit Manipulation, Array, Hash Table +1 |
| 526 | Beautiful Arrangement | Medium | Bit Manipulation, Array, Dynamic Programming +2 |
| 638 | Shopping Offers | Medium | Bit Manipulation, Memoization, Array +3 |
| 672 | Bulb Switcher II | Medium | Bit Manipulation, Depth-First Search, Breadth-First Search +1 |
| 698 | Partition to K Equal Sum Subsets | Medium | Bit Manipulation, Memoization, Array +3 |
| 756 | Pyramid Transition Matrix | Medium | Bit Manipulation, Hash Table, String +1 |
| 779 | K-th Symbol in Grammar | Medium | Bit Manipulation, Recursion, Math |
| 784 | Letter Case Permutation | Medium | Bit Manipulation, String, Backtracking |
| 861 | Score After Flipping Matrix | Medium | Greedy, Bit Manipulation, Array +1 |
| 898 | Bitwise ORs of Subarrays | Medium | Bit Manipulation, Array, Dynamic Programming |
| 1016 | Binary String With Substrings Representing 1 To N | Medium | Bit Manipulation, Hash Table, String +1 |
| 1177 | Can Make Palindrome from Substring | Medium | Bit Manipulation, Array, Hash Table +2 |
| 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 |
| 1310 | XOR Queries of a Subarray | Medium | Bit Manipulation, Array, Prefix Sum |
| 1318 | Minimum Flips to Make a OR b Equal to c | Medium | Bit Manipulation |
| 1371 | Find the Longest Substring Containing Vowels in Even Counts | Medium | Bit Manipulation, Hash Table, String +1 |
| 1386 | Cinema Seat Allocation | Medium | Greedy, Bit Manipulation, Array +1 |
| 1404 | Number of Steps to Reduce a Number in Binary Representation to One | Medium | Bit Manipulation, String, Simulation |
| 1442 | Count Triplets That Can Form Two Arrays of Equal XOR | Medium | Bit Manipulation, Array, Hash Table +2 |
| 1457 | Pseudo-Palindromic Paths in a Binary Tree | Medium | Bit Manipulation, Tree, Depth-First Search +2 |
| 1461 | Check If a String Contains All Binary Codes of Size K | Medium | Bit Manipulation, Hash Table, String +2 |
| 1525 | Number of Good Ways to Split a String | Medium | Bit Manipulation, Hash Table, String +1 |
| 1558 | Minimum Numbers of Function Calls to Make Target Array | Medium | Greedy, Bit Manipulation, Array |
| 1680 | Concatenation of Consecutive Binary Numbers | Medium | Bit Manipulation, Math, Simulation |
| 1734 | Decode XORed Permutation | Medium | Bit Manipulation, Array |
| 1738 | Find Kth Largest XOR Coordinate Value | Medium | Bit Manipulation, Array, Divide and Conquer +5 |
| 1829 | Maximum XOR for Each Query | Medium | Bit Manipulation, Array, Prefix Sum |
| 1915 | Number of Wonderful Substrings | Medium | Bit Manipulation, Hash Table, String +1 |
| 1930 | Unique Length-3 Palindromic Subsequences | Medium | Bit Manipulation, Hash Table, String +1 |
| 1947 | Maximum Compatibility Score Sum | Medium | Bit Manipulation, Array, Dynamic Programming +2 |
| 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 |
| 2135 | Count Words Obtained After Adding a Letter | Medium | Bit Manipulation, Array, Hash Table +2 |
| 2212 | Maximum Points in an Archery Competition | Medium | Bit Manipulation, Array, Backtracking +1 |
| 2275 | Largest Combination With Bitwise AND Greater Than Zero | Medium | Bit Manipulation, Array, Hash Table +1 |
| 2305 | Fair Distribution of Cookies | Medium | Bit Manipulation, Array, Dynamic Programming +2 |
| 2317 | Maximum XOR After Operations | Medium | Bit Manipulation, Array, Math |
| 2397 | Maximum Rows Covered by Columns | Medium | Bit Manipulation, Array, Backtracking +2 |
| 2401 | Longest Nice Subarray | Medium | Bit Manipulation, Array, Sliding Window |
| 2411 | Smallest Subarrays With Maximum Bitwise OR | Medium | Bit Manipulation, Array, Binary Search +1 |
| 2419 | Longest Subarray With Maximum Bitwise AND | Medium | Bit Manipulation, Brainteaser, Array |
| 2425 | Bitwise XOR of All Pairings | Medium | Bit Manipulation, Brainteaser, Array |
| 2429 | Minimize XOR | Medium | Greedy, Bit Manipulation |
| 2433 | Find The Original Array of Prefix Xor | Medium | Bit Manipulation, Array |
| 2438 | Range Product Queries of Powers | Medium | Bit Manipulation, Array, Prefix Sum |
| 2527 | Find Xor-Beauty of Array | Medium | Bit Manipulation, Array, Math |
| 2546 | Apply Bitwise Operations to Make Strings Equal | Medium | Bit Manipulation, String |
| 2564 | Substring XOR Queries | Medium | Bit Manipulation, Array, Hash Table +1 |
| 2568 | Minimum Impossible OR | Medium | Bit Manipulation, Brainteaser, Array |
| 2571 | Minimum Operations to Reduce an Integer to 0 | Medium | Greedy, Bit Manipulation, Dynamic Programming |
| 2572 | Count the Number of Square-Free Subsets | Medium | Bit Manipulation, Array, Math +2 |
| 2588 | Count the Number of Beautiful Subarrays | Medium | Bit Manipulation, Array, Hash Table +1 |
| 2657 | Find the Prefix Common Array of Two Arrays | Medium | Bit Manipulation, Array, Hash Table |
| 2680 | Maximum OR | Medium | Greedy, Bit Manipulation, Array +1 |
| 2683 | Neighboring Bitwise XOR | Medium | Bit Manipulation, Array |
| 2708 | Maximum Strength of a Group | Medium | Greedy, Bit Manipulation, Array +4 |
| 2741 | Special Permutations | Medium | Bit Manipulation, Array, Dynamic Programming +1 |
| 2749 | Minimum Operations to Make the Integer Zero | Medium | Bit Manipulation, Brainteaser, Enumeration |
| 2857 | Count Pairs of Points With Distance k | Medium | Bit Manipulation, Array, Hash Table |
| 2871 | Split Array Into Maximum Number of Subarrays | Medium | Greedy, Bit Manipulation, Array |
| 2939 | Maximum Xor Product | Medium | Greedy, Bit Manipulation, Math |
| 2997 | Minimum Number of Operations to Make Array XOR Equal to K | Medium | Bit Manipulation, Array |
| 320 | Generalized AbbreviationPremium | Medium | Bit Manipulation, String, Backtracking |
| 351 | Android Unlock PatternsPremium | Medium | Bit Manipulation, Dynamic Programming, Backtracking +1 |
| 751 | IP to CIDRPremium | Medium | Bit Manipulation, String |
| 957 | Prison Cells After N Days | Medium | Bit Manipulation, Array, Hash Table +1 |
| 1066 | Campus Bikes IIPremium | Medium | Bit Manipulation, Array, Dynamic Programming +2 |
| 1256 | Encode NumberPremium | Medium | Bit Manipulation, Math, String |
| 1506 | Find Root of N-Ary TreePremium | Medium | Bit Manipulation, Tree, Depth-First Search +1 |
| 1908 | Game of NimPremium | Medium | Bit Manipulation, Brainteaser, Array +3 |
| 2128 | Remove All Ones With Row and Column FlipsPremium | Medium | Bit Manipulation, Array, Math +1 |
| 2152 | Minimum Number of Lines to Cover PointsPremium | Medium | Bit Manipulation, Geometry, Array +5 |
| 2174 | Remove All Ones With Row and Column Flips IIPremium | Medium | Bit Manipulation, Breadth-First Search, Array +1 |
| 2184 | Number of Ways to Build Sturdy Brick WallPremium | Medium | Bit Manipulation, Array, Dynamic Programming +1 |
| 2505 | Bitwise OR of All Subsequence SumsPremium | Medium | Bit Manipulation, Brainteaser, Array +2 |
| 2802 | Find The K-th Lucky NumberPremium | Medium | Bit Manipulation, Math, String |
| 2992 | Number of Self-Divisible PermutationsPremium | Medium | Bit Manipulation, Array, Math +4 |
Hard (58)
| # | Problem | Difficulty | Topics |
|---|---|---|---|
| 691 | Stickers to Spell Word | Hard | Bit Manipulation, Memoization, Array +5 |
| 782 | Transform to Chessboard | Hard | Bit Manipulation, Array, Math +1 |
| 805 | Split Array With Same Average | Hard | Bit Manipulation, Array, Math +2 |
| 810 | Chalkboard XOR Game | Hard | Bit Manipulation, Brainteaser, Array +2 |
| 847 | Shortest Path Visiting All Nodes | Hard | Bit Manipulation, Breadth-First Search, Graph +2 |
| 864 | Shortest Path to Get All Keys | Hard | Bit Manipulation, Breadth-First Search, Array +1 |
| 943 | Find the Shortest Superstring | Hard | Bit Manipulation, Array, String +2 |
| 980 | Unique Paths III | Hard | Bit Manipulation, Array, Backtracking +1 |
| 982 | Triples with Bitwise AND Equal To Zero | Hard | Bit Manipulation, Array, Hash Table |
| 995 | Minimum Number of K Consecutive Bit Flips | Hard | Bit Manipulation, Queue, Array +2 |
| 996 | Number of Squareful Arrays | Hard | Bit Manipulation, Array, Hash Table +4 |
| 1125 | Smallest Sufficient Team | Hard | Bit Manipulation, Array, Dynamic Programming +1 |
| 1178 | Number of Valid Words for Each Puzzle | Hard | Bit Manipulation, Trie, Array +2 |
| 1255 | Maximum Score Words Formed by Letters | Hard | Bit Manipulation, Array, Hash Table +5 |
| 1284 | Minimum Number of Flips to Convert Binary Matrix to Zero Matrix | Hard | Bit Manipulation, Breadth-First Search, Array +2 |
| 1349 | Maximum Students Taking Exam | Hard | Bit Manipulation, Array, Dynamic Programming +2 |
| 1434 | Number of Ways to Wear Different Hats to Each Other | Hard | Bit Manipulation, Array, Dynamic Programming +1 |
| 1483 | Kth Ancestor of a Tree Node | Hard | Bit Manipulation, Tree, Depth-First Search +4 |
| 1494 | Parallel Courses II | Hard | Bit Manipulation, Graph, Dynamic Programming +1 |
| 1521 | Find a Value of a Mysterious Function Closest to Target | Hard | Bit Manipulation, Segment Tree, Array +1 |
| 1542 | Find Longest Awesome Substring | Hard | Bit Manipulation, Hash Table, String |
| 1595 | Minimum Cost to Connect Two Groups of Points | Hard | Bit Manipulation, Array, Dynamic Programming +2 |
| 1601 | Maximum Number of Achievable Transfer Requests | Hard | Bit Manipulation, Array, Backtracking +1 |
| 1611 | Minimum One Bit Operations to Make Integers Zero | Hard | Bit Manipulation, Memoization, Dynamic Programming |
| 1617 | Count Subtrees With Max Distance Between Cities | Hard | Bit Manipulation, Tree, Dynamic Programming +2 |
| 1655 | Distribute Repeating Integers | Hard | Bit Manipulation, Array, Dynamic Programming +2 |
| 1659 | Maximize Grid Happiness | Hard | Bit Manipulation, Memoization, Dynamic Programming +1 |
| 1681 | Minimum Incompatibility | Hard | Bit Manipulation, Array, Dynamic Programming +1 |
| 1707 | Maximum XOR With an Element From Array | Hard | Bit Manipulation, Trie, Array |
| 1723 | Find Minimum Time to Finish All Jobs | Hard | Bit Manipulation, Array, Dynamic Programming +2 |
| 1755 | Closest Subsequence Sum | Hard | Bit Manipulation, Array, Two Pointers +3 |
| 1787 | Make the XOR of All Segments Equal to Zero | Hard | Bit Manipulation, Array, Dynamic Programming |
| 1799 | Maximize Score After N Operations | Hard | Bit Manipulation, Array, Math +4 |
| 1803 | Count Pairs With XOR in a Range | Hard | Bit Manipulation, Trie, Array |
| 1815 | Maximum Number of Groups Getting Fresh Donuts | Hard | Bit Manipulation, Memoization, Array +2 |
| 1835 | Find XOR Sum of All Pairs Bitwise AND | Hard | Bit Manipulation, Array, Math |
| 1879 | Minimum XOR Sum of Two Arrays | Hard | Bit Manipulation, Array, Dynamic Programming +1 |
| 1994 | The Number of Good Subsets | Hard | Bit Manipulation, Array, Hash Table +5 |
| 2035 | Partition Array Into Two Arrays to Minimize Sum Difference | Hard | Bit Manipulation, Array, Two Pointers +4 |
| 2151 | Maximum Good People Based on Statements | Hard | Bit Manipulation, Array, Backtracking +1 |
| 2157 | Groups of Strings | Hard | Bit Manipulation, Union Find, String |
| 2172 | Maximum AND Sum of Array | Hard | Bit Manipulation, Array, Dynamic Programming +1 |
| 2306 | Naming a Company | Hard | Bit Manipulation, Array, Hash Table +2 |
| 2322 | Minimum Score After Removals on a Tree | Hard | Bit Manipulation, Tree, Depth-First Search +1 |
| 2354 | Number of Excellent Pairs | Hard | Bit Manipulation, Array, Hash Table +1 |
| 2732 | Find a Good Subset of the Matrix | Hard | Bit Manipulation, Array, Hash Table +1 |
| 2791 | Count Paths That Can Form a Palindrome in a Tree | Hard | Bit Manipulation, Tree, Depth-First Search +2 |
| 2835 | Minimum Operations to Form Subsequence With Target Sum | Hard | Greedy, Bit Manipulation, Array |
| 2836 | Maximize Value of Function in a Ball Passing Game | Hard | Bit Manipulation, Array, Dynamic Programming |
| 2897 | Apply Operations on Array to Maximize Sum of Squares | Hard | Greedy, Bit Manipulation, Array +1 |
| 2920 | Maximum Points After Collecting Coins From All Nodes | Hard | Bit Manipulation, Tree, Depth-First Search +3 |
| 2935 | Maximum Strong Pair XOR II | Hard | Bit Manipulation, Trie, Array +2 |
| 2959 | Number of Possible Sets of Closing Branches | Hard | Bit Manipulation, Graph, Enumeration +2 |
| 411 | Minimum Unique Word AbbreviationPremium | Hard | Bit Manipulation, Array, String +1 |
| 465 | Optimal Account BalancingPremium | Hard | Bit Manipulation, Array, Dynamic Programming +2 |
| 1938 | Maximum Genetic Difference Query | Hard | Bit Manipulation, Depth-First Search, Trie +2 |
| 2247 | Maximum Cost of Trip With K HighwaysPremium | Hard | Bit Manipulation, Graph, Dynamic Programming +1 |
| 2403 | Minimum Time to Kill All MonstersPremium | Hard | Bit Manipulation, Array, Dynamic Programming +1 |
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
- Binary Tree174
- Heap (Priority Queue)163
- Prefix Sum157
- Stack157
- Simulation144
- Graph138
- Counting126
- Design122
- Sliding Window116
- Backtracking105
When the Bit Manipulation 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.