All 725 problems from Amazon's six-month LeetCode list (210 Easy, 396 Medium, 119 Hard), grouped by the pattern that solves them. 553 are solved on this site: open one to see which pattern to choose and why, the approach, the code with a line-by-line explanation, and a player that steps through the code on LeetCode's own example. Easy warm-ups and SQL/JavaScript problems link to LeetCode.
On the pattern pages these problems carry a Amazon badge. Frequency is LeetCode's relative score for this list (100 = asked most often). Read a pattern page first, then work through its group here from the most to the least frequent problem.
About 5–6 problems on 5 days a week. Each month: read the pattern page, solve its worked examples without looking, then this list. Re-solve anything you needed a hint for one week later.
In the last two weeks, filter to Hard, sort your attention by frequency, and do timed mock interviews: 45 minutes, talk through the brute force, name the pattern, then code it.
22 solved on the pattern page (step-by-step explanation and a step-through player), 4 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 560 | Subarray Sum Equals K | Medium | 69 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 238 | Product of Array Except Self | Medium | 57 | Array, Prefix Sum | Solution · LeetCode ↗ | |
| 1480 | Running Sum of 1d Array | Easy | 45 | Array, Prefix Sum | LeetCode ↗ | |
| 528 | Random Pick with Weight | Medium | 39 | Array, Math, Binary Search, Prefix Sum, Randomized | Solution · LeetCode ↗ | |
| 3699 | Number of ZigZag Arrays I | Hard | 34 | Dynamic Programming, Prefix Sum | Solution · LeetCode ↗ | |
| 303 | Range Sum Query - Immutable | Easy | 30 | Array, Design, Prefix Sum | Solution · LeetCode ↗ | |
| 724 | Find Pivot Index | Easy | 30 | Array, Prefix Sum | LeetCode ↗ | |
| 437 | Path Sum III | Medium | 30 | Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 525 | Contiguous Array | Medium | 26 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 1674 | Minimum Moves to Make Array Complementary | Medium | 26 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 3737 | Count Subarrays With Majority Element I | Medium | 26 | Array, Hash Table, Divide and Conquer, Segment Tree, Merge Sort, Counting, Prefix Sum | Solution · LeetCode ↗ | |
| 974 | Subarray Sums Divisible by K | Medium | 26 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 2488 | Count Subarrays With Median K | Hard | 21 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 304 | Range Sum Query 2D - Immutable | Medium | 21 | Array, Design, Matrix, Prefix Sum | Solution · LeetCode ↗ | |
| 3026 | Maximum Good Subarray Sum | Medium | 21 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 2615 | Sum of Distances | Medium | 21 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 1248 | Count Number of Nice Subarrays | Medium | 21 | Array, Hash Table, Math, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 2574 | Left and Right Sum Differences | Easy | 21 | Array, Prefix Sum | LeetCode ↗ | |
| 3212 | Count Submatrices With Equal Frequency of X and Y | Medium | 14 | Array, Matrix, Prefix Sum | Solution · LeetCode ↗ | |
| 3655 | XOR After Range Multiplication Queries II | Hard | 14 | Array, Divide and Conquer, Prefix Sum | Solution · LeetCode ↗ | |
| 1732 | Find the Highest Altitude | Easy | 14 | Array, Prefix Sum | LeetCode ↗ | |
| 2055 | Plates Between Candles | Medium | 14 | Array, String, Binary Search, Prefix Sum | Solution · LeetCode ↗ | |
| 3756 | Concatenate Non-Zero Digits and Multiply by Sum II | Medium | 14 | Math, String, Prefix Sum | Solution · LeetCode ↗ | |
| 3653 | XOR After Range Multiplication Queries I | Medium | 14 | Array, Divide and Conquer, Simulation, Prefix Sum | Solution · LeetCode ↗ | |
| 862 | Shortest Subarray with Sum at Least K | Hard | 14 | Array, Binary Search, Queue, Sliding Window, Heap (Priority Queue), Prefix Sum, Monotonic Queue | Solution · LeetCode ↗ | |
| 1314 | Matrix Block Sum | Medium | 14 | Array, Matrix, Prefix Sum | Solution · LeetCode ↗ |
35 solved on the pattern page (step-by-step explanation and a step-through player), 12 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 42 | Trapping Rain Water | Hard | 86 | Array, Two Pointers, Dynamic Programming, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 15 | 3Sum | Medium | 75 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 4 | Median of Two Sorted Arrays | Hard | 74 | Array, Binary Search, Divide and Conquer | Solution · LeetCode ↗ | |
| 5 | Longest Palindromic Substring | Medium | 73 | Two Pointers, String, Dynamic Programming, Manacher | Solution · LeetCode ↗ | |
| 11 | Container With Most Water | Medium | 69 | Array, Two Pointers, Greedy | Solution · LeetCode ↗ | |
| 26 | Remove Duplicates from Sorted Array | Easy | 62 | Array, Two Pointers | Solution · LeetCode ↗ | |
| 75 | Sort Colors | Medium | 60 | Array, Two Pointers, Sorting, Quicksort, Bubble Sort | Solution · LeetCode ↗ | |
| 31 | Next Permutation | Medium | 59 | Array, Two Pointers | Solution · LeetCode ↗ | |
| 18 | 4Sum | Medium | 58 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 88 | Merge Sorted Array | Easy | 57 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 125 | Valid Palindrome | Easy | 56 | Two Pointers, String | Solution · LeetCode ↗ | |
| 27 | Remove Element | Easy | 55 | Array, Two Pointers | LeetCode ↗ | |
| 16 | 3Sum Closest | Medium | 54 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 283 | Move Zeroes | Easy | 54 | Array, Two Pointers | LeetCode ↗ | |
| 167 | Two Sum II - Input Array Is Sorted | Medium | 51 | Array, Two Pointers, Binary Search | Solution · LeetCode ↗ | |
| 977 | Squares of a Sorted Array | Easy | 50 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 344 | Reverse String | Easy | 47 | Two Pointers, String | Solution · LeetCode ↗ | |
| 443 | String Compression | Medium | 47 | Two Pointers, String | Solution · LeetCode ↗ | |
| 189 | Rotate Array | Medium | 45 | Array, Math, Two Pointers | Solution · LeetCode ↗ | |
| 881 | Boats to Save People | Medium | 45 | Array, Two Pointers, Greedy, Sorting, Timsort | Solution · LeetCode ↗ | |
| 80 | Remove Duplicates from Sorted Array II | Medium | 39 | Array, Two Pointers | Solution · LeetCode ↗ | |
| 1768 | Merge Strings Alternately | Easy | 39 | Two Pointers, String | Solution · LeetCode ↗ | |
| 455 | Assign Cookies | Easy | 39 | Array, Two Pointers, Greedy, Sorting, Quicksort | LeetCode ↗ | |
| 345 | Reverse Vowels of a String | Easy | 36 | Two Pointers, String | LeetCode ↗ | |
| 680 | Valid Palindrome II | Easy | 36 | Two Pointers, String, Greedy | LeetCode ↗ | |
| 557 | Reverse Words in a String III | Easy | 36 | Two Pointers, String | LeetCode ↗ | |
| 392 | Is Subsequence | Easy | 34 | Two Pointers, String, Dynamic Programming | Solution · LeetCode ↗ | |
| 2149 | Rearrange Array Elements by Sign | Medium | 30 | Array, Two Pointers, Simulation | Solution · LeetCode ↗ | |
| 160 | Intersection of Two Linked Lists | Easy | 30 | Hash Table, Linked List, Two Pointers | LeetCode ↗ | |
| 696 | Count Binary Substrings | Easy | 30 | Two Pointers, String | LeetCode ↗ | |
| 3867 | Sum of GCD of Formed Pairs | Medium | 30 | Array, Math, Two Pointers, Sorting, Simulation, Number Theory | Solution · LeetCode ↗ | |
| 541 | Reverse String II | Easy | 26 | Two Pointers, String | LeetCode ↗ | |
| 2161 | Partition Array According to Given Pivot | Medium | 26 | Array, Two Pointers, Simulation | Solution · LeetCode ↗ | |
| 2938 | Separate Black and White Balls | Medium | 26 | Two Pointers, String, Greedy | Solution · LeetCode ↗ | |
| 653 | Two Sum IV - Input is a BST | Easy | 21 | Hash Table, Two Pointers, Tree, Depth-First Search, Breadth-First Search, Binary Search Tree, Binary Tree | LeetCode ↗ | |
| 1679 | Max Number of K-Sum Pairs | Medium | 21 | Array, Hash Table, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 633 | Sum of Square Numbers | Medium | 21 | Math, Two Pointers, Binary Search | Solution · LeetCode ↗ | |
| 2460 | Apply Operations to an Array | Easy | 21 | Array, Two Pointers, Simulation | LeetCode ↗ | |
| 969 | Pancake Sorting | Medium | 21 | Array, Two Pointers, Greedy, Sorting | Solution · LeetCode ↗ | |
| 165 | Compare Version Numbers | Medium | 14 | Two Pointers, String | Solution · LeetCode ↗ | |
| 3752 | Lexicographically Smallest Negated Permutation that Sums to Target | Medium | 14 | Array, Math, Two Pointers, Greedy, Sorting | Solution · LeetCode ↗ | |
| 1574 | Shortest Subarray to be Removed to Make Array Sorted | Medium | 14 | Array, Two Pointers, Binary Search, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 1861 | Rotating the Box | Medium | 14 | Array, Two Pointers, Matrix | Solution · LeetCode ↗ | |
| 277 | Find the Celebrity Premium | Medium | 14 | Two Pointers, Graph Theory, Interactive | Solution · LeetCode ↗ | |
| 821 | Shortest Distance to a Character | Easy | 14 | Array, Two Pointers, String | LeetCode ↗ | |
| 611 | Valid Triangle Number | Medium | 14 | Array, Two Pointers, Binary Search, Greedy, Sorting | Solution · LeetCode ↗ | |
| 3302 | Find the Lexicographically Smallest Valid Sequence | Medium | 14 | Two Pointers, String, Dynamic Programming, Greedy | Solution · LeetCode ↗ |
31 solved on the pattern page (step-by-step explanation and a step-through player), 3 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 121 | Best Time to Buy and Sell Stock | Easy | 82 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 3 | Longest Substring Without Repeating Characters | Medium | 82 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 3413 | Maximum Coins From K Consecutive Bags | Medium | 69 | Array, Binary Search, Greedy, Sliding Window, Sorting, Prefix Sum | Solution · LeetCode ↗ | |
| 904 | Fruit Into Baskets | Medium | 69 | Array, Hash Table, Sliding Window | Solution · LeetCode ↗ | |
| 76 | Minimum Window Substring | Hard | 62 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 239 | Sliding Window Maximum | Hard | 60 | Array, Queue, Sliding Window, Heap (Priority Queue), Monotonic Queue, Range Minimum/Maximum Query | Solution · LeetCode ↗ | |
| 424 | Longest Repeating Character Replacement | Medium | 58 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 1004 | Max Consecutive Ones III | Medium | 50 | Array, Binary Search, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 643 | Maximum Average Subarray I | Easy | 45 | Array, Sliding Window | Solution · LeetCode ↗ | |
| 209 | Minimum Size Subarray Sum | Medium | 43 | Array, Binary Search, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 567 | Permutation in String | Medium | 41 | Hash Table, Two Pointers, String, Sliding Window | Solution · LeetCode ↗ | |
| 1838 | Frequency of the Most Frequent Element | Medium | 39 | Array, Binary Search, Greedy, Sliding Window, Sorting, Prefix Sum | Solution · LeetCode ↗ | |
| 219 | Contains Duplicate II | Easy | 36 | Array, Hash Table, Sliding Window | Solution · LeetCode ↗ | |
| 30 | Substring with Concatenation of All Words | Hard | 36 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 2958 | Length of Longest Subarray With at Most K Frequency | Medium | 36 | Array, Hash Table, Sliding Window | Solution · LeetCode ↗ | |
| 438 | Find All Anagrams in a String | Medium | 34 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 992 | Subarrays with K Different Integers | Hard | 34 | Array, Hash Table, Sliding Window, Counting | Solution · LeetCode ↗ | |
| 1438 | Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit | Medium | 34 | Array, Queue, Sliding Window, Heap (Priority Queue), Ordered Set, Monotonic Queue | Solution · LeetCode ↗ | |
| 1423 | Maximum Points You Can Obtain from Cards | Medium | 30 | Array, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 395 | Longest Substring with At Least K Repeating Characters | Medium | 30 | Hash Table, String, Divide and Conquer, Sliding Window | Solution · LeetCode ↗ | |
| 713 | Subarray Product Less Than K | Medium | 26 | Array, Binary Search, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 187 | Repeated DNA Sequences | Medium | 26 | Hash Table, String, Bit Manipulation, Sliding Window, Rolling Hash, Hash Function, Z Algorithm, Boyer–Moore String-Search Algorithm | Solution · LeetCode ↗ | |
| 1658 | Minimum Operations to Reduce X to Zero | Medium | 21 | Array, Hash Table, Binary Search, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 1652 | Defuse the Bomb | Easy | 21 | Array, Sliding Window | LeetCode ↗ | |
| 2762 | Continuous Subarrays | Medium | 21 | Array, Queue, Sliding Window, Heap (Priority Queue), Ordered Set, Monotonic Queue | Solution · LeetCode ↗ | |
| 1703 | Minimum Adjacent Swaps for K Consecutive Ones | Hard | 21 | Array, Greedy, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 2461 | Maximum Sum of Distinct Subarrays With Length K | Medium | 21 | Array, Hash Table, Sliding Window | Solution · LeetCode ↗ | |
| 3090 | Maximum Length Substring With Two Occurrences | Easy | 21 | Hash Table, String, Sliding Window | LeetCode ↗ | |
| 2653 | Sliding Subarray Beauty | Medium | 14 | Array, Hash Table, Sliding Window | Solution · LeetCode ↗ | |
| 2271 | Maximum White Tiles Covered by a Carpet | Medium | 14 | Array, Binary Search, Greedy, Sliding Window, Sorting, Prefix Sum | Solution · LeetCode ↗ | |
| 1151 | Minimum Swaps to Group All 1's Together Premium | Medium | 14 | Array, Sliding Window | Solution · LeetCode ↗ | |
| 413 | Arithmetic Slices | Medium | 14 | Array, Dynamic Programming, Sliding Window | Solution · LeetCode ↗ | |
| 2009 | Minimum Number of Operations to Make Array Continuous | Hard | 14 | Array, Hash Table, Binary Search, Sliding Window | Solution · LeetCode ↗ | |
| 1876 | Substrings of Size Three with Distinct Characters | Easy | 14 | Hash Table, String, Sliding Window, Counting | LeetCode ↗ |
12 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 19 | Remove Nth Node From End of List | Medium | 54 | Linked List, Two Pointers | Solution · LeetCode ↗ | |
| 234 | Palindrome Linked List | Easy | 54 | Linked List, Two Pointers, Stack, Recursion | Solution · LeetCode ↗ | |
| 41 | First Missing Positive | Hard | 51 | Array, Hash Table | Solution · LeetCode ↗ | |
| 287 | Find the Duplicate Number | Medium | 48 | Array, Two Pointers, Binary Search, Bit Manipulation, Pigeonhole Principle, Floyd's Cycle Finding Algorithm | Solution · LeetCode ↗ | |
| 142 | Linked List Cycle II | Medium | 47 | Hash Table, Linked List, Two Pointers, Floyd's Cycle Finding Algorithm | Solution · LeetCode ↗ | |
| 141 | Linked List Cycle | Easy | 43 | Hash Table, Linked List, Two Pointers, Floyd's Cycle Finding Algorithm | Solution · LeetCode ↗ | |
| 143 | Reorder List | Medium | 41 | Linked List, Two Pointers, Stack, Recursion | Solution · LeetCode ↗ | |
| 202 | Happy Number | Easy | 36 | Hash Table, Math, Two Pointers, Floyd's Cycle Finding Algorithm | Solution · LeetCode ↗ | |
| 876 | Middle of the Linked List | Easy | 36 | Linked List, Two Pointers | Solution · LeetCode ↗ | |
| 148 | Sort List | Medium | 34 | Linked List, Two Pointers, Divide and Conquer, Sorting, Merge Sort | Solution · LeetCode ↗ | |
| 2095 | Delete the Middle Node of a Linked List | Medium | 21 | Linked List, Two Pointers | Solution · LeetCode ↗ | |
| 2130 | Maximum Twin Sum of a Linked List | Medium | 14 | Linked List, Two Pointers, Stack | Solution · LeetCode ↗ |
16 solved on the pattern page (step-by-step explanation and a step-through player), 2 Easy warm-ups that link to LeetCode.
21 solved on the pattern page (step-by-step explanation and a step-through player), 1 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 84 | Largest Rectangle in Histogram | Hard | 57 | Array, Stack, Monotonic Stack, Range Minimum/Maximum Query | Solution · LeetCode ↗ | |
| 496 | Next Greater Element I | Easy | 51 | Array, Hash Table, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 739 | Daily Temperatures | Medium | 51 | Array, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 907 | Sum of Subarray Minimums | Medium | 48 | Array, Dynamic Programming, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 503 | Next Greater Element II | Medium | 47 | Array, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 2281 | Sum of Total Strength of Wizards | Hard | 43 | Array, Stack, Monotonic Stack, Prefix Sum | Solution · LeetCode ↗ | |
| 402 | Remove K Digits | Medium | 39 | String, Stack, Greedy, Monotonic Stack | Solution · LeetCode ↗ | |
| 1008 | Construct Binary Search Tree from Preorder Traversal | Medium | 39 | Array, Stack, Tree, Binary Search Tree, Monotonic Stack, Binary Tree | Solution · LeetCode ↗ | |
| 456 | 132 Pattern | Medium | 36 | Array, Binary Search, Stack, Monotonic Stack, Ordered Set | Solution · LeetCode ↗ | |
| 85 | Maximal Rectangle | Hard | 34 | Array, Dynamic Programming, Stack, Matrix, Monotonic Stack | Solution · LeetCode ↗ | |
| 901 | Online Stock Span | Medium | 26 | Stack, Design, Monotonic Stack, Data Stream | Solution · LeetCode ↗ | |
| 853 | Car Fleet | Medium | 26 | Array, Stack, Sorting, Monotonic Stack | Solution · LeetCode ↗ | |
| 316 | Remove Duplicate Letters | Medium | 26 | String, Stack, Greedy, Monotonic Stack | Solution · LeetCode ↗ | |
| 1081 | Smallest Subsequence of Distinct Characters | Medium | 26 | String, Stack, Greedy, Monotonic Stack | Solution · LeetCode ↗ | |
| 1475 | Final Prices With a Special Discount in a Shop | Easy | 14 | Array, Stack, Monotonic Stack | LeetCode ↗ | |
| 1856 | Maximum Subarray Min-Product | Medium | 14 | Array, Stack, Monotonic Stack, Prefix Sum, Cartesian Tree | Solution · LeetCode ↗ | |
| 1944 | Number of Visible People in a Queue | Hard | 14 | Array, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 962 | Maximum Width Ramp | Medium | 14 | Array, Two Pointers, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 2487 | Remove Nodes From Linked List | Medium | 14 | Linked List, Stack, Recursion, Monotonic Stack | Solution · LeetCode ↗ | |
| 975 | Odd Even Jump | Hard | 14 | Array, Dynamic Programming, Stack, Sorting, Monotonic Stack, Ordered Set | Solution · LeetCode ↗ | |
| 2104 | Sum of Subarray Ranges | Medium | 14 | Array, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 1526 | Minimum Number of Increments on Subarrays to Form a Target Array | Hard | 14 | Array, Dynamic Programming, Stack, Greedy, Monotonic Stack | Solution · LeetCode ↗ |
23 solved on the pattern page (step-by-step explanation and a step-through player), 3 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 23 | Merge k Sorted Lists | Hard | 69 | Linked List, Divide and Conquer, Heap (Priority Queue), Merge Sort, Tournament Sort | Solution · LeetCode ↗ | |
| 767 | Reorganize String | Medium | 68 | Hash Table, String, Greedy, Sorting, Heap (Priority Queue), Counting | Solution · LeetCode ↗ | |
| 347 | Top K Frequent Elements | Medium | 64 | Array, Hash Table, Divide and Conquer, Sorting, Heap (Priority Queue), Bucket Sort, Counting, Quickselect | Solution · LeetCode ↗ | |
| 621 | Task Scheduler | Medium | 55 | Array, Hash Table, Greedy, Sorting, Heap (Priority Queue), Counting | Solution · LeetCode ↗ | |
| 295 | Find Median from Data Stream | Hard | 52 | Two Pointers, Design, Sorting, Heap (Priority Queue), Data Stream | Solution · LeetCode ↗ | |
| 215 | Kth Largest Element in an Array | Medium | 47 | Array, Divide and Conquer, Sorting, Heap (Priority Queue), Quickselect | Solution · LeetCode ↗ | |
| 658 | Find K Closest Elements | Medium | 34 | Array, Two Pointers, Binary Search, Sliding Window, Sorting, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 692 | Top K Frequent Words | Medium | 34 | Array, Hash Table, String, Trie, Sorting, Heap (Priority Queue), Bucket Sort, Counting | Solution · LeetCode ↗ | |
| 1648 | Sell Diminishing-Valued Colored Balls | Medium | 34 | Array, Math, Binary Search, Greedy, Sorting, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 502 | IPO | Hard | 34 | Array, Greedy, Sorting, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 451 | Sort Characters By Frequency | Medium | 21 | Hash Table, String, Sorting, Heap (Priority Queue), Bucket Sort, Counting | Solution · LeetCode ↗ | |
| 1642 | Furthest Building You Can Reach | Medium | 21 | Array, Greedy, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 871 | Minimum Number of Refueling Stops | Hard | 21 | Array, Dynamic Programming, Greedy, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 973 | K Closest Points to Origin | Medium | 21 | Array, Math, Divide and Conquer, Geometry, Sorting, Heap (Priority Queue), Quickselect, K-D Tree | Solution · LeetCode ↗ | |
| 378 | Kth Smallest Element in a Sorted Matrix | Medium | 21 | Array, Binary Search, Sorting, Heap (Priority Queue), Matrix | Solution · LeetCode ↗ | |
| 480 | Sliding Window Median | Hard | 21 | Array, Hash Table, Sliding Window, Heap (Priority Queue), Treap | Solution · LeetCode ↗ | |
| 1464 | Maximum Product of Two Elements in an Array | Easy | 21 | Array, Sorting, Heap (Priority Queue) | LeetCode ↗ | |
| 1353 | Maximum Number of Events That Can Be Attended | Medium | 14 | Array, Greedy, Sorting, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 2593 | Find Score of an Array After Marking All Elements | Medium | 14 | Array, Hash Table, Sorting, Heap (Priority Queue), Simulation | Solution · LeetCode ↗ | |
| 3296 | Minimum Number of Seconds to Make Mountain Height Zero | Medium | 14 | Array, Math, Binary Search, Greedy, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 3462 | Maximum Sum With at Most K Elements | Medium | 14 | Array, Greedy, Sorting, Heap (Priority Queue), Matrix | Solution · LeetCode ↗ | |
| 703 | Kth Largest Element in a Stream | Easy | 14 | Tree, Design, Binary Search Tree, Heap (Priority Queue), Binary Tree, Data Stream | Solution · LeetCode ↗ | |
| 2974 | Minimum Number Game | Easy | 14 | Array, Sorting, Heap (Priority Queue), Simulation | LeetCode ↗ | |
| 857 | Minimum Cost to Hire K Workers | Hard | 14 | Array, Greedy, Sorting, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 1834 | Single-Threaded CPU | Medium | 14 | Array, Sorting, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 2357 | Make Array Zero by Subtracting Equal Amounts | Easy | 14 | Array, Hash Table, Greedy, Sorting, Heap (Priority Queue), Simulation | LeetCode ↗ |
14 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 56 | Merge Intervals | Medium | 72 | Array, Sorting, Quicksort | Solution · LeetCode ↗ | |
| 253 | Meeting Rooms II Premium | Medium | 56 | Array, Two Pointers, Greedy, Sorting, Heap (Priority Queue), Prefix Sum | Solution · LeetCode ↗ | |
| 435 | Non-overlapping Intervals | Medium | 43 | Array, Dynamic Programming, Greedy, Sorting | Solution · LeetCode ↗ | |
| 57 | Insert Interval | Medium | 36 | Array | Solution · LeetCode ↗ | |
| 228 | Summary Ranges | Easy | 30 | Array | Solution · LeetCode ↗ | |
| 1288 | Remove Covered Intervals | Medium | 30 | Array, Sorting | Solution · LeetCode ↗ | |
| 252 | Meeting Rooms Premium | Easy | 26 | Array, Sorting, Quicksort | Solution · LeetCode ↗ | |
| 986 | Interval List Intersections | Medium | 21 | Array, Two Pointers, Sweep Line | Solution · LeetCode ↗ | |
| 763 | Partition Labels | Medium | 14 | Hash Table, Two Pointers, String, Greedy | Solution · LeetCode ↗ | |
| 729 | My Calendar I | Medium | 14 | Array, Binary Search, Design, Segment Tree, Ordered Set | Solution · LeetCode ↗ | |
| 1094 | Car Pooling | Medium | 14 | Array, Sorting, Heap (Priority Queue), Simulation, Prefix Sum | Solution · LeetCode ↗ | |
| 452 | Minimum Number of Arrows to Burst Balloons | Medium | 14 | Array, Greedy, Sorting | Solution · LeetCode ↗ | |
| 759 | Employee Free Time Premium | Hard | 14 | Array, Sweep Line, Sorting, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 436 | Find Right Interval | Medium | 14 | Array, Binary Search, Sorting | Solution · LeetCode ↗ |
32 solved on the pattern page (step-by-step explanation and a step-through player), 9 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 875 | Koko Eating Bananas | Medium | 71 | Array, Binary Search | Solution · LeetCode ↗ | |
| 33 | Search in Rotated Sorted Array | Medium | 70 | Array, Binary Search | Solution · LeetCode ↗ | |
| 34 | Find First and Last Position of Element in Sorted Array | Medium | 58 | Array, Binary Search | Solution · LeetCode ↗ | |
| 1011 | Capacity To Ship Packages Within D Days | Medium | 58 | Array, Binary Search | Solution · LeetCode ↗ | |
| 35 | Search Insert Position | Easy | 54 | Array, Binary Search | Solution · LeetCode ↗ | |
| 410 | Split Array Largest Sum | Hard | 54 | Array, Binary Search, Dynamic Programming, Greedy, Prefix Sum | Solution · LeetCode ↗ | |
| 540 | Single Element in a Sorted Array | Medium | 50 | Array, Binary Search | Solution · LeetCode ↗ | |
| 162 | Find Peak Element | Medium | 48 | Array, Binary Search | Solution · LeetCode ↗ | |
| 69 | Sqrt(x) | Easy | 48 | Math, Binary Search, Newton's Method | LeetCode ↗ | |
| 349 | Intersection of Two Arrays | Easy | 48 | Array, Hash Table, Two Pointers, Binary Search, Sorting | LeetCode ↗ | |
| 240 | Search a 2D Matrix II | Medium | 47 | Array, Binary Search, Divide and Conquer, Matrix | Solution · LeetCode ↗ | |
| 981 | Time Based Key-Value Store | Medium | 45 | Hash Table, String, Binary Search, Design | Solution · LeetCode ↗ | |
| 153 | Find Minimum in Rotated Sorted Array | Medium | 45 | Array, Binary Search | Solution · LeetCode ↗ | |
| 74 | Search a 2D Matrix | Medium | 43 | Array, Binary Search, Matrix | Solution · LeetCode ↗ | |
| 1482 | Minimum Number of Days to Make m Bouquets | Medium | 43 | Array, Binary Search | Solution · LeetCode ↗ | |
| 704 | Binary Search | Easy | 43 | Array, Binary Search | Solution · LeetCode ↗ | |
| 1539 | Kth Missing Positive Number | Easy | 41 | Array, Binary Search | LeetCode ↗ | |
| 278 | First Bad Version | Easy | 41 | Binary Search, Interactive | Solution · LeetCode ↗ | |
| 852 | Peak Index in a Mountain Array | Medium | 39 | Array, Binary Search, Ternary Search | Solution · LeetCode ↗ | |
| 81 | Search in Rotated Sorted Array II | Medium | 36 | Array, Binary Search | Solution · LeetCode ↗ | |
| 268 | Missing Number | Easy | 30 | Array, Hash Table, Math, Binary Search, Bit Manipulation, Sorting | LeetCode ↗ | |
| 1283 | Find the Smallest Divisor Given a Threshold | Medium | 30 | Array, Binary Search | Solution · LeetCode ↗ | |
| 1552 | Magnetic Force Between Two Balls | Medium | 30 | Array, Binary Search, Sorting | Solution · LeetCode ↗ | |
| 3633 | Earliest Finish Time for Land and Water Rides I | Easy | 30 | Array, Two Pointers, Binary Search, Greedy, Sorting | LeetCode ↗ | |
| 1235 | Maximum Profit in Job Scheduling | Hard | 26 | Array, Binary Search, Dynamic Programming, Sorting | Solution · LeetCode ↗ | |
| 350 | Intersection of Two Arrays II | Easy | 26 | Array, Hash Table, Two Pointers, Binary Search, Sorting | LeetCode ↗ | |
| 3488 | Closest Equal Element Queries | Medium | 26 | Array, Hash Table, Binary Search | Solution · LeetCode ↗ | |
| 3920 | Maximize Fixed Points After Deletions | Hard | 26 | Array, Binary Search, Sorting | Solution · LeetCode ↗ | |
| 374 | Guess Number Higher or Lower | Easy | 26 | Binary Search, Interactive | LeetCode ↗ | |
| 354 | Russian Doll Envelopes | Hard | 21 | Array, Binary Search, Dynamic Programming, Sorting, Longest Increasing Subsequence | Solution · LeetCode ↗ | |
| 1901 | Find a Peak Element II | Medium | 21 | Array, Binary Search, Matrix | Solution · LeetCode ↗ | |
| 2448 | Minimum Cost to Make Array Equal | Hard | 21 | Array, Binary Search, Greedy, Sorting, Prefix Sum | Solution · LeetCode ↗ | |
| 1146 | Snapshot Array | Medium | 14 | Array, Hash Table, Binary Search, Design, Persistent Data Structure | Solution · LeetCode ↗ | |
| 3661 | Maximum Walls Destroyed by Robots | Hard | 14 | Array, Binary Search, Dynamic Programming, Sorting | Solution · LeetCode ↗ | |
| 2226 | Maximum Candies Allocated to K Children | Medium | 14 | Array, Binary Search | Solution · LeetCode ↗ | |
| 2064 | Minimized Maximum of Products Distributed to Any Store | Medium | 14 | Array, Binary Search, Greedy | Solution · LeetCode ↗ | |
| 367 | Valid Perfect Square | Easy | 14 | Math, Binary Search | Solution · LeetCode ↗ | |
| 888 | Fair Candy Swap | Easy | 14 | Array, Hash Table, Binary Search, Sorting | LeetCode ↗ | |
| 2080 | Range Frequency Queries | Medium | 14 | Array, Hash Table, Binary Search, Design, Segment Tree | Solution · LeetCode ↗ | |
| 2035 | Partition Array Into Two Arrays to Minimize Sum Difference | Hard | 14 | Array, Two Pointers, Binary Search, Dynamic Programming, Bit Manipulation, Meet in the Middle, Sorting, Ordered Set, Bitmask | Solution · LeetCode ↗ | |
| 1346 | Check If N and Its Double Exist | Easy | 14 | Array, Hash Table, Two Pointers, Binary Search, Sorting | LeetCode ↗ |
41 solved on the pattern page (step-by-step explanation and a step-through player), 2 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 236 | Lowest Common Ancestor of a Binary Tree | Medium | 65 | Tree, Depth-First Search, Binary Tree, Binary Lifting, Lowest Common Ancestor | Solution · LeetCode ↗ | |
| 100 | Same Tree | Easy | 48 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 124 | Binary Tree Maximum Path Sum | Hard | 48 | Dynamic Programming, Tree, Depth-First Search, Binary Tree, DP on Trees | Solution · LeetCode ↗ | |
| 199 | Binary Tree Right Side View | Medium | 48 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 543 | Diameter of Binary Tree | Easy | 48 | Tree, Depth-First Search, Binary Tree, DP on Trees | Solution · LeetCode ↗ | |
| 94 | Binary Tree Inorder Traversal | Easy | 45 | Stack, Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 103 | Binary Tree Zigzag Level Order Traversal | Medium | 39 | Tree, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 297 | Serialize and Deserialize Binary Tree | Hard | 39 | String, Tree, Depth-First Search, Breadth-First Search, Design, Binary Tree | Solution · LeetCode ↗ | |
| 987 | Vertical Order Traversal of a Binary Tree | Hard | 39 | Hash Table, Tree, Depth-First Search, Breadth-First Search, Sorting, Binary Tree | Solution · LeetCode ↗ | |
| 337 | House Robber III | Medium | 39 | Dynamic Programming, Tree, Depth-First Search, Binary Tree, DP on Trees | Solution · LeetCode ↗ | |
| 110 | Balanced Binary Tree | Easy | 39 | Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 98 | Validate Binary Search Tree | Medium | 36 | Tree, Depth-First Search, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 101 | Symmetric Tree | Easy | 36 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 99 | Recover Binary Search Tree | Medium | 36 | Tree, Depth-First Search, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 2385 | Amount of Time for Binary Tree to Be Infected | Medium | 36 | Hash Table, Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 104 | Maximum Depth of Binary Tree | Easy | 34 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 102 | Binary Tree Level Order Traversal | Medium | 34 | Tree, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 662 | Maximum Width of Binary Tree | Medium | 34 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 2196 | Create Binary Tree From Descriptions | Medium | 34 | Array, Hash Table, Tree, Binary Tree | Solution · LeetCode ↗ | |
| 105 | Construct Binary Tree from Preorder and Inorder Traversal | Medium | 30 | Array, Hash Table, Divide and Conquer, Tree, Binary Tree | Solution · LeetCode ↗ | |
| 235 | Lowest Common Ancestor of a Binary Search Tree | Medium | 30 | Tree, Depth-First Search, Binary Search Tree, Binary Tree, Binary Lifting, Lowest Common Ancestor | Solution · LeetCode ↗ | |
| 113 | Path Sum II | Medium | 30 | Backtracking, Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 144 | Binary Tree Preorder Traversal | Easy | 30 | Stack, Tree, Depth-First Search, Binary Tree | LeetCode ↗ | |
| 968 | Binary Tree Cameras | Hard | 26 | Dynamic Programming, Tree, Depth-First Search, Binary Tree, DP on Trees | Solution · LeetCode ↗ | |
| 116 | Populating Next Right Pointers in Each Node | Medium | 26 | Linked List, Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 108 | Convert Sorted Array to Binary Search Tree | Easy | 26 | Array, Divide and Conquer, Tree, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 1038 | Binary Search Tree to Greater Sum Tree | Medium | 26 | Tree, Depth-First Search, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 1650 | Lowest Common Ancestor of a Binary Tree III Premium | Medium | 21 | Hash Table, Two Pointers, Tree, Binary Tree, Binary Lifting, Lowest Common Ancestor | Solution · LeetCode ↗ | |
| 2583 | Kth Largest Sum in a Binary Tree | Medium | 21 | Tree, Breadth-First Search, Sorting, Binary Tree | Solution · LeetCode ↗ | |
| 1028 | Recover a Tree From Preorder Traversal | Hard | 21 | String, Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 572 | Subtree of Another Tree | Easy | 21 | Tree, Depth-First Search, String Matching, Binary Tree, Hash Function | Solution · LeetCode ↗ | |
| 701 | Insert into a Binary Search Tree | Medium | 21 | Tree, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 3558 | Number of Ways to Assign Edge Weights I | Medium | 21 | Math, Tree, Depth-First Search | Solution · LeetCode ↗ | |
| 230 | Kth Smallest Element in a BST | Medium | 21 | Tree, Depth-First Search, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 114 | Flatten Binary Tree to Linked List | Medium | 14 | Linked List, Stack, Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 988 | Smallest String Starting From Leaf | Medium | 14 | String, Backtracking, Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 222 | Count Complete Tree Nodes | Medium | 14 | Binary Search, Bit Manipulation, Tree, Binary Tree | Solution · LeetCode ↗ | |
| 938 | Range Sum of BST | Easy | 14 | Tree, Depth-First Search, Binary Search Tree, Binary Tree | LeetCode ↗ | |
| 1932 | Merge BSTs to Create Single BST | Hard | 14 | Array, Hash Table, Tree, Depth-First Search, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 979 | Distribute Coins in Binary Tree | Medium | 14 | Tree, Depth-First Search, Binary Tree, DP on Trees | Solution · LeetCode ↗ | |
| 1373 | Maximum Sum BST in Binary Tree | Hard | 14 | Dynamic Programming, Tree, Depth-First Search, Binary Search Tree, Binary Tree, DP on Trees | Solution · LeetCode ↗ | |
| 1315 | Sum of Nodes with Even-Valued Grandparent | Medium | 14 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 450 | Delete Node in a BST | Medium | 14 | Tree, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ |
19 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 207 | Course Schedule | Medium | 72 | Depth-First Search, Breadth-First Search, Graph Theory, Topological Sort, Directed Acyclic Graph | Solution · LeetCode ↗ | |
| 210 | Course Schedule II | Medium | 52 | Depth-First Search, Breadth-First Search, Graph Theory, Topological Sort | Solution · LeetCode ↗ | |
| 547 | Number of Provinces | Medium | 39 | Depth-First Search, Breadth-First Search, Union-Find, Graph Theory | Solution · LeetCode ↗ | |
| 399 | Evaluate Division | Medium | 34 | Array, String, Depth-First Search, Breadth-First Search, Union-Find, Graph Theory, Shortest Path, Bellman–Ford Algorithm, Floyd–Warshall Algorithm | Solution · LeetCode ↗ | |
| 1971 | Find if Path Exists in Graph | Easy | 34 | Depth-First Search, Breadth-First Search, Union-Find, Graph Theory | Solution · LeetCode ↗ | |
| 2050 | Parallel Courses III | Hard | 30 | Array, Dynamic Programming, Graph Theory, Topological Sort, Directed Acyclic Graph | Solution · LeetCode ↗ | |
| 133 | Clone Graph | Medium | 26 | Hash Table, Depth-First Search, Breadth-First Search, Graph Theory | Solution · LeetCode ↗ | |
| 1192 | Critical Connections in a Network | Hard | 26 | Depth-First Search, Graph Theory, Biconnected Component, Bridge (Graph) | Solution · LeetCode ↗ | |
| 269 | Alien Dictionary Premium | Hard | 26 | Array, String, Depth-First Search, Breadth-First Search, Graph Theory, Topological Sort, Directed Acyclic Graph | Solution · LeetCode ↗ | |
| 785 | Is Graph Bipartite? | Medium | 26 | Depth-First Search, Breadth-First Search, Union-Find, Graph Theory, Graph Coloring, Bipartite Graph | Solution · LeetCode ↗ | |
| 802 | Find Eventual Safe States | Medium | 21 | Depth-First Search, Breadth-First Search, Graph Theory, Topological Sort, Kosaraju's Algorithm, Tarjan's SCC Algorithm | Solution · LeetCode ↗ | |
| 797 | All Paths From Source to Target | Medium | 21 | Backtracking, Depth-First Search, Breadth-First Search, Graph Theory, Directed Acyclic Graph | Solution · LeetCode ↗ | |
| 3310 | Remove Methods From Project | Medium | 21 | Depth-First Search, Breadth-First Search, Graph Theory | Solution · LeetCode ↗ | |
| 886 | Possible Bipartition | Medium | 14 | Depth-First Search, Breadth-First Search, Union-Find, Graph Theory, Graph Coloring, Bipartite Graph | Solution · LeetCode ↗ | |
| 1376 | Time Needed to Inform All Employees | Medium | 14 | Tree, Depth-First Search, Breadth-First Search | Solution · LeetCode ↗ | |
| 1306 | Jump Game III | Medium | 14 | Array, Depth-First Search, Breadth-First Search | Solution · LeetCode ↗ | |
| 2477 | Minimum Fuel Cost to Report to the Capital | Medium | 14 | Tree, Depth-First Search, Breadth-First Search, Graph Theory | Solution · LeetCode ↗ | |
| 2115 | Find All Possible Recipes from Given Supplies | Medium | 14 | Array, Hash Table, String, Graph Theory, Topological Sort, Directed Acyclic Graph | Solution · LeetCode ↗ | |
| 386 | Lexicographical Numbers | Medium | 14 | Depth-First Search, Trie | Solution · LeetCode ↗ |
21 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 994 | Rotting Oranges | Medium | 71 | Array, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 127 | Word Ladder | Hard | 52 | Hash Table, String, Breadth-First Search, Bidirectional Search | Solution · LeetCode ↗ | |
| 863 | All Nodes Distance K in Binary Tree | Medium | 47 | Hash Table, Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 752 | Open the Lock | Medium | 36 | Array, Hash Table, String, Breadth-First Search, Bidirectional Search | Solution · LeetCode ↗ | |
| 542 | 01 Matrix | Medium | 34 | Array, Dynamic Programming, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 815 | Bus Routes | Hard | 30 | Array, Hash Table, Breadth-First Search | Solution · LeetCode ↗ | |
| 1091 | Shortest Path in Binary Matrix | Medium | 26 | Array, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 1236 | Web Crawler Premium | Medium | 26 | String, Depth-First Search, Breadth-First Search, Interactive | Solution · LeetCode ↗ | |
| 126 | Word Ladder II | Hard | 21 | Hash Table, String, Backtracking, Breadth-First Search, Bidirectional Search | Solution · LeetCode ↗ | |
| 1293 | Shortest Path in a Grid with Obstacles Elimination | Hard | 21 | Array, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 3629 | Minimum Jumps to Reach End via Prime Teleportation | Medium | 21 | Array, Hash Table, Math, Breadth-First Search, Number Theory | Solution · LeetCode ↗ | |
| 310 | Minimum Height Trees | Medium | 21 | Depth-First Search, Breadth-First Search, Graph Theory, Topological Sort | Solution · LeetCode ↗ | |
| 111 | Minimum Depth of Binary Tree | Easy | 14 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 286 | Walls and Gates Premium | Medium | 14 | Array, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 854 | K-Similar Strings | Hard | 14 | Hash Table, String, Breadth-First Search | Solution · LeetCode ↗ | |
| 1345 | Jump Game IV | Hard | 14 | Array, Hash Table, Breadth-First Search | Solution · LeetCode ↗ | |
| 433 | Minimum Genetic Mutation | Medium | 14 | Hash Table, String, Breadth-First Search, Bidirectional Search | Solution · LeetCode ↗ | |
| 3552 | Grid Teleportation Traversal | Medium | 14 | Array, Hash Table, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 1311 | Get Watched Videos by Your Friends | Medium | 14 | Array, Hash Table, Breadth-First Search, Graph Theory, Sorting | Solution · LeetCode ↗ | |
| 117 | Populating Next Right Pointers in Each Node II | Medium | 14 | Linked List, Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 1162 | As Far from Land as Possible | Medium | 14 | Array, Dynamic Programming, Breadth-First Search, Matrix | Solution · LeetCode ↗ |
18 solved on the pattern page (step-by-step explanation and a step-through player), 8 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 200 | Number of Islands | Medium | 76 | Array, Depth-First Search, Breadth-First Search, Union-Find, Matrix | Solution · LeetCode ↗ | |
| 48 | Rotate Image | Medium | 58 | Array, Math, Matrix | Solution · LeetCode ↗ | |
| 54 | Spiral Matrix | Medium | 51 | Array, Matrix, Simulation | Solution · LeetCode ↗ | |
| 73 | Set Matrix Zeroes | Medium | 47 | Array, Hash Table, Matrix | Solution · LeetCode ↗ | |
| 130 | Surrounded Regions | Medium | 39 | Array, Depth-First Search, Breadth-First Search, Union-Find, Matrix | Solution · LeetCode ↗ | |
| 417 | Pacific Atlantic Water Flow | Medium | 36 | Array, Depth-First Search, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 2965 | Find Missing and Repeated Values | Easy | 36 | Array, Hash Table, Math, Matrix | LeetCode ↗ | |
| 1559 | Detect Cycles in 2D Grid | Medium | 30 | Array, Depth-First Search, Breadth-First Search, Union-Find, Matrix | Solution · LeetCode ↗ | |
| 733 | Flood Fill | Easy | 26 | Array, Depth-First Search, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 59 | Spiral Matrix II | Medium | 26 | Array, Matrix, Simulation | Solution · LeetCode ↗ | |
| 695 | Max Area of Island | Medium | 26 | Array, Depth-First Search, Breadth-First Search, Union-Find, Matrix | Solution · LeetCode ↗ | |
| 2661 | First Completely Painted Row or Column | Medium | 26 | Array, Hash Table, Matrix | Solution · LeetCode ↗ | |
| 2643 | Row With Maximum Ones | Easy | 26 | Array, Matrix | LeetCode ↗ | |
| 874 | Walking Robot Simulation | Medium | 21 | Array, Hash Table, Simulation | Solution · LeetCode ↗ | |
| 566 | Reshape the Matrix | Easy | 21 | Array, Matrix, Simulation | LeetCode ↗ | |
| 1572 | Matrix Diagonal Sum | Easy | 14 | Array, Matrix | LeetCode ↗ | |
| 2946 | Matrix Similarity After Cyclic Shifts | Easy | 14 | Array, Math, Matrix, Simulation | LeetCode ↗ | |
| 1886 | Determine Whether Matrix Can Be Obtained By Rotation | Easy | 14 | Array, Matrix | LeetCode ↗ | |
| 2033 | Minimum Operations to Make a Uni-Value Grid | Medium | 14 | Array, Math, Sorting, Matrix | Solution · LeetCode ↗ | |
| 861 | Score After Flipping Matrix | Medium | 14 | Array, Greedy, Bit Manipulation, Matrix | Solution · LeetCode ↗ | |
| 3459 | Length of Longest V-Shaped Diagonal Segment | Hard | 14 | Array, Dynamic Programming, Memoization, Matrix | Solution · LeetCode ↗ | |
| 1536 | Minimum Swaps to Arrange a Binary Grid | Medium | 14 | Array, Greedy, Matrix | Solution · LeetCode ↗ | |
| 1672 | Richest Customer Wealth | Easy | 14 | Array, Matrix | LeetCode ↗ | |
| 1582 | Special Positions in a Binary Matrix | Easy | 14 | Array, Matrix | LeetCode ↗ | |
| 289 | Game of Life | Medium | 14 | Array, Matrix, Simulation | Solution · LeetCode ↗ | |
| 778 | Swim in Rising Water | Hard | 14 | Array, Binary Search, Depth-First Search, Breadth-First Search, Union-Find, Minimax, Heap (Priority Queue), Matrix, Dijkstra's Algorithm | Solution · LeetCode ↗ |
22 solved on the pattern page (step-by-step explanation and a step-through player), 2 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 17 | Letter Combinations of a Phone Number | Medium | 64 | Hash Table, String, Backtracking | Solution · LeetCode ↗ | |
| 78 | Subsets | Medium | 63 | Array, Backtracking, Bit Manipulation | Solution · LeetCode ↗ | |
| 22 | Generate Parentheses | Medium | 55 | String, Dynamic Programming, Backtracking, Bracket Sequences | Solution · LeetCode ↗ | |
| 46 | Permutations | Medium | 55 | Array, Backtracking | Solution · LeetCode ↗ | |
| 79 | Word Search | Medium | 50 | Array, String, Backtracking, Depth-First Search, Matrix | Solution · LeetCode ↗ | |
| 51 | N-Queens | Hard | 45 | Array, Backtracking, Algorithm X | Solution · LeetCode ↗ | |
| 90 | Subsets II | Medium | 41 | Array, Backtracking, Bit Manipulation | Solution · LeetCode ↗ | |
| 131 | Palindrome Partitioning | Medium | 39 | String, Dynamic Programming, Backtracking | Solution · LeetCode ↗ | |
| 212 | Word Search II | Hard | 39 | Array, String, Backtracking, Trie, Matrix | Solution · LeetCode ↗ | |
| 39 | Combination Sum | Medium | 30 | Array, Backtracking | Solution · LeetCode ↗ | |
| 77 | Combinations | Medium | 30 | Backtracking | Solution · LeetCode ↗ | |
| 1291 | Sequential Digits | Medium | 30 | Enumeration | Solution · LeetCode ↗ | |
| 37 | Sudoku Solver | Hard | 26 | Array, Hash Table, Backtracking, Matrix, Algorithm X, Dancing Links | Solution · LeetCode ↗ | |
| 140 | Word Break II | Hard | 26 | Array, Hash Table, String, Dynamic Programming, Backtracking, Trie, Memoization | Solution · LeetCode ↗ | |
| 40 | Combination Sum II | Medium | 26 | Array, Backtracking | Solution · LeetCode ↗ | |
| 47 | Permutations II | Medium | 26 | Array, Backtracking, Sorting | Solution · LeetCode ↗ | |
| 60 | Permutation Sequence | Hard | 21 | Math, Recursion | Solution · LeetCode ↗ | |
| 698 | Partition to K Equal Sum Subsets | Medium | 21 | Array, Dynamic Programming, Backtracking, Bit Manipulation, Memoization, Bitmask | Solution · LeetCode ↗ | |
| 93 | Restore IP Addresses | Medium | 21 | String, Backtracking | Solution · LeetCode ↗ | |
| 1980 | Find Unique Binary String | Medium | 21 | Array, Hash Table, String, Backtracking | Solution · LeetCode ↗ | |
| 89 | Gray Code | Medium | 14 | Math, Backtracking, Bit Manipulation | Solution · LeetCode ↗ | |
| 301 | Remove Invalid Parentheses | Hard | 14 | String, Backtracking, Breadth-First Search | Solution · LeetCode ↗ | |
| 401 | Binary Watch | Easy | 14 | Backtracking, Bit Manipulation | LeetCode ↗ | |
| 257 | Binary Tree Paths | Easy | 14 | String, Backtracking, Tree, Depth-First Search, Binary Tree | LeetCode ↗ |
82 solved on the pattern page (step-by-step explanation and a step-through player), 4 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 53 | Maximum Subarray | Medium | 63 | Array, Divide and Conquer, Dynamic Programming | Solution · LeetCode ↗ | |
| 198 | House Robber | Medium | 63 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 70 | Climbing Stairs | Easy | 61 | Math, Dynamic Programming, Memoization | Solution · LeetCode ↗ | |
| 62 | Unique Paths | Medium | 55 | Math, Dynamic Programming, Combinatorics | Solution · LeetCode ↗ | |
| 322 | Coin Change | Medium | 55 | Array, Dynamic Programming, Breadth-First Search, Knapsack Problem, Complete Knapsack | Solution · LeetCode ↗ | |
| 152 | Maximum Product Subarray | Medium | 48 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 416 | Partition Equal Subset Sum | Medium | 48 | Array, Dynamic Programming, Knapsack Problem, 0-1 Knapsack | Solution · LeetCode ↗ | |
| 118 | Pascal's Triangle | Easy | 45 | Array, Dynamic Programming | LeetCode ↗ | |
| 139 | Word Break | Medium | 45 | Array, Hash Table, String, Dynamic Programming, Trie, Memoization, Brute-Force Search | Solution · LeetCode ↗ | |
| 97 | Interleaving String | Medium | 43 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 32 | Longest Valid Parentheses | Hard | 41 | String, Dynamic Programming, Stack, Bracket Sequences | Solution · LeetCode ↗ | |
| 300 | Longest Increasing Subsequence | Medium | 41 | Array, Binary Search, Dynamic Programming, Longest Increasing Subsequence | Solution · LeetCode ↗ | |
| 72 | Edit Distance | Medium | 41 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 10 | Regular Expression Matching | Hard | 39 | String, Dynamic Programming, Recursion | Solution · LeetCode ↗ | |
| 509 | Fibonacci Number | Easy | 39 | Math, Dynamic Programming, Recursion, Memoization | Solution · LeetCode ↗ | |
| 63 | Unique Paths II | Medium | 39 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 472 | Concatenated Words | Hard | 39 | Array, String, Dynamic Programming, Depth-First Search, Trie, Sorting | Solution · LeetCode ↗ | |
| 44 | Wildcard Matching | Hard | 39 | String, Dynamic Programming, Greedy, Recursion | Solution · LeetCode ↗ | |
| 1143 | Longest Common Subsequence | Medium | 36 | String, Dynamic Programming, Longest Common Subsequence | Solution · LeetCode ↗ | |
| 312 | Burst Balloons | Hard | 36 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 918 | Maximum Sum Circular Subarray | Medium | 34 | Array, Divide and Conquer, Dynamic Programming, Queue, Monotonic Queue | Solution · LeetCode ↗ | |
| 486 | Predict the Winner | Medium | 34 | Array, Math, Dynamic Programming, Recursion, Minimax, Game Theory, Zero-Sum Game | Solution · LeetCode ↗ | |
| 64 | Minimum Path Sum | Medium | 30 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 213 | House Robber II | Medium | 30 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 518 | Coin Change II | Medium | 30 | Array, Dynamic Programming, Knapsack Problem, Complete Knapsack | Solution · LeetCode ↗ | |
| 396 | Rotate Function | Medium | 30 | Array, Math, Dynamic Programming | Solution · LeetCode ↗ | |
| 3751 | Total Waviness of Numbers in Range I | Medium | 30 | Math, Dynamic Programming, Enumeration | Solution · LeetCode ↗ | |
| 1140 | Stone Game II | Medium | 30 | Array, Math, Dynamic Programming, Minimax, Prefix Sum, Game Theory, Zero-Sum Game | Solution · LeetCode ↗ | |
| 746 | Min Cost Climbing Stairs | Easy | 26 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 174 | Dungeon Game | Hard | 26 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 403 | Frog Jump | Hard | 26 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 983 | Minimum Cost For Tickets | Medium | 26 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 1871 | Jump Game VII | Medium | 26 | String, Dynamic Programming, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 123 | Best Time to Buy and Sell Stock III | Hard | 26 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 494 | Target Sum | Medium | 26 | Array, Dynamic Programming, Backtracking, Knapsack Problem, 0-1 Knapsack | Solution · LeetCode ↗ | |
| 120 | Triangle | Medium | 21 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 279 | Perfect Squares | Medium | 21 | Math, Dynamic Programming, Breadth-First Search, Knapsack Problem, Complete Knapsack | Solution · LeetCode ↗ | |
| 790 | Domino and Tromino Tiling | Medium | 21 | Dynamic Programming | Solution · LeetCode ↗ | |
| 1547 | Minimum Cost to Cut a Stick | Hard | 21 | Array, Dynamic Programming, Sorting | Solution · LeetCode ↗ | |
| 3225 | Maximum Score From Grid Operations | Hard | 21 | Array, Dynamic Programming, Matrix, Prefix Sum | Solution · LeetCode ↗ | |
| 2770 | Maximum Number of Jumps to Reach the Last Index | Medium | 21 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 1691 | Maximum Height by Stacking Cuboids | Hard | 21 | Array, Dynamic Programming, Sorting | Solution · LeetCode ↗ | |
| 2272 | Substring With Largest Variance | Hard | 21 | Hash Table, String, Dynamic Programming, Enumeration | Solution · LeetCode ↗ | |
| 3753 | Total Waviness of Numbers in Range II | Hard | 21 | Math, Dynamic Programming | Solution · LeetCode ↗ | |
| 132 | Palindrome Partitioning II | Hard | 21 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 1478 | Allocate Mailboxes | Hard | 21 | Array, Math, Dynamic Programming, Sorting | Solution · LeetCode ↗ | |
| 1000 | Minimum Cost to Merge Stones | Hard | 21 | Array, Dynamic Programming, Prefix Sum | Solution · LeetCode ↗ | |
| 741 | Cherry Pickup | Hard | 21 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 115 | Distinct Subsequences | Hard | 21 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 188 | Best Time to Buy and Sell Stock IV | Hard | 21 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 474 | Ones and Zeroes | Medium | 21 | Array, String, Dynamic Programming, Knapsack Problem, 0-1 Knapsack | Solution · LeetCode ↗ | |
| 1406 | Stone Game III | Hard | 21 | Array, Math, Dynamic Programming, Minimax, Game Theory, Zero-Sum Game | Solution · LeetCode ↗ | |
| 1335 | Minimum Difficulty of a Job Schedule | Hard | 21 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 647 | Palindromic Substrings | Medium | 14 | Two Pointers, String, Dynamic Programming | Solution · LeetCode ↗ | |
| 3434 | Maximum Frequency After Subarray Operation | Medium | 14 | Array, Hash Table, Dynamic Programming, Greedy, Enumeration, Prefix Sum | Solution · LeetCode ↗ | |
| 1277 | Count Square Submatrices with All Ones | Medium | 14 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 931 | Minimum Falling Path Sum | Medium | 14 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 3130 | Find All Possible Stable Binary Arrays II | Hard | 14 | Dynamic Programming, Prefix Sum | Solution · LeetCode ↗ | |
| 1594 | Maximum Non Negative Product in a Matrix | Medium | 14 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 338 | Counting Bits | Easy | 14 | Dynamic Programming, Bit Manipulation | LeetCode ↗ | |
| 3418 | Maximum Amount of Money Robot Can Earn | Medium | 14 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 3857 | Minimum Cost to Split into Ones | Medium | 14 | Math, Dynamic Programming | Solution · LeetCode ↗ | |
| 313 | Super Ugly Number | Medium | 14 | Array, Math, Dynamic Programming | Solution · LeetCode ↗ | |
| 3660 | Jump Game IX | Medium | 14 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 788 | Rotated Digits | Medium | 14 | Math, Dynamic Programming | Solution · LeetCode ↗ | |
| 516 | Longest Palindromic Subsequence | Medium | 14 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 1494 | Parallel Courses II | Hard | 14 | Dynamic Programming, Bit Manipulation, Graph Theory, Bitmask, Directed Acyclic Graph | Solution · LeetCode ↗ | |
| 1340 | Jump Game V | Hard | 14 | Array, Dynamic Programming, Sorting | Solution · LeetCode ↗ | |
| 2262 | Total Appeal of A String | Hard | 14 | Hash Table, String, Dynamic Programming | Solution · LeetCode ↗ | |
| 1463 | Cherry Pickup II | Hard | 14 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 740 | Delete and Earn | Medium | 14 | Array, Hash Table, Dynamic Programming | Solution · LeetCode ↗ | |
| 1137 | N-th Tribonacci Number | Easy | 14 | Math, Dynamic Programming, Memoization | LeetCode ↗ | |
| 376 | Wiggle Subsequence | Medium | 14 | Array, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 673 | Number of Longest Increasing Subsequence | Medium | 14 | Array, Dynamic Programming, Binary Indexed Tree, Segment Tree, Longest Increasing Subsequence | Solution · LeetCode ↗ | |
| 1014 | Best Sightseeing Pair | Medium | 14 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 3336 | Find the Number of Subsequences With Equal GCD | Hard | 14 | Array, Math, Dynamic Programming, Number Theory, Euclidean Algorithm, Greatest Common Divisor | Solution · LeetCode ↗ | |
| 2742 | Painting the Walls | Hard | 14 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 241 | Different Ways to Add Parentheses | Medium | 14 | Math, String, Dynamic Programming, Recursion, Memoization, Bracket Sequences | Solution · LeetCode ↗ | |
| 368 | Largest Divisible Subset | Medium | 14 | Array, Math, Dynamic Programming, Sorting | Solution · LeetCode ↗ | |
| 3995 | Minimum Cost to Convert String III | Hard | 14 | Solution · LeetCode ↗ | ||
| 1025 | Divisor Game | Easy | 14 | Math, Dynamic Programming, Brainteaser, Game Theory, Impartial Game | LeetCode ↗ | |
| 689 | Maximum Sum of 3 Non-Overlapping Subarrays | Hard | 14 | Array, Dynamic Programming, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 309 | Best Time to Buy and Sell Stock with Cooldown | Medium | 14 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 805 | Split Array With Same Average | Hard | 14 | Array, Hash Table, Math, Dynamic Programming, Bit Manipulation, Meet in the Middle, Bitmask | Solution · LeetCode ↗ | |
| 940 | Distinct Subsequences II | Hard | 14 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 377 | Combination Sum IV | Medium | 14 | Array, Dynamic Programming | Solution · LeetCode ↗ |
27 solved on the pattern page (step-by-step explanation and a step-through player), 11 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 1 | Two Sum | Easy | 100 | Array, Hash Table | Solution · LeetCode ↗ | |
| 49 | Group Anagrams | Medium | 75 | Array, Hash Table, String, Sorting | Solution · LeetCode ↗ | |
| 128 | Longest Consecutive Sequence | Medium | 68 | Array, Hash Table, Union-Find | Solution · LeetCode ↗ | |
| 169 | Majority Element | Easy | 66 | Array, Hash Table, Divide and Conquer, Sorting, Counting, Boyer–Moore Majority Vote Algorithm | Solution · LeetCode ↗ | |
| 217 | Contains Duplicate | Easy | 57 | Array, Hash Table, Sorting | Solution · LeetCode ↗ | |
| 242 | Valid Anagram | Easy | 52 | Hash Table, String, Sorting | Solution · LeetCode ↗ | |
| 387 | First Unique Character in a String | Easy | 48 | Hash Table, String, Queue, Counting | LeetCode ↗ | |
| 36 | Valid Sudoku | Medium | 45 | Array, Hash Table, Matrix | Solution · LeetCode ↗ | |
| 205 | Isomorphic Strings | Easy | 45 | Hash Table, String | Solution · LeetCode ↗ | |
| 383 | Ransom Note | Easy | 41 | Hash Table, String, Counting | Solution · LeetCode ↗ | |
| 3872 | Longest Arithmetic Sequence After Changing At Most One Element | Medium | 39 | Array, Enumeration | Solution · LeetCode ↗ | |
| 1002 | Find Common Characters | Easy | 36 | Array, Hash Table, String | LeetCode ↗ | |
| 229 | Majority Element II | Medium | 34 | Array, Hash Table, Sorting, Counting, Boyer–Moore Majority Vote Algorithm | Solution · LeetCode ↗ | |
| 299 | Bulls and Cows | Medium | 30 | Hash Table, String, Counting | Solution · LeetCode ↗ | |
| 554 | Brick Wall | Medium | 26 | Array, Hash Table | Solution · LeetCode ↗ | |
| 2657 | Find the Prefix Common Array of Two Arrays | Medium | 26 | Array, Hash Table, Bit Manipulation | Solution · LeetCode ↗ | |
| 1152 | Analyze User Website Visit Pattern Premium | Medium | 21 | Array, Hash Table, String, Sorting | Solution · LeetCode ↗ | |
| 2910 | Minimum Number of Groups to Create a Valid Assignment | Medium | 21 | Array, Hash Table, Greedy | Solution · LeetCode ↗ | |
| 149 | Max Points on a Line | Hard | 21 | Array, Hash Table, Math, Geometry, Euclidean Algorithm, Greatest Common Divisor | Solution · LeetCode ↗ | |
| 290 | Word Pattern | Easy | 21 | Hash Table, String | Solution · LeetCode ↗ | |
| 3120 | Count the Number of Special Characters I | Easy | 21 | Hash Table, String | LeetCode ↗ | |
| 859 | Buddy Strings | Easy | 21 | Hash Table, String | LeetCode ↗ | |
| 771 | Jewels and Stones | Easy | 21 | Hash Table, String | Solution · LeetCode ↗ | |
| 1189 | Maximum Number of Balloons | Easy | 21 | Hash Table, String, Counting | Solution · LeetCode ↗ | |
| 3020 | Find the Maximum Number of Elements in Subset | Medium | 21 | Array, Hash Table, Enumeration | Solution · LeetCode ↗ | |
| 2840 | Check if Strings Can be Made Equal With Operations II | Medium | 14 | Hash Table, String, Sorting | Solution · LeetCode ↗ | |
| 3761 | Minimum Absolute Distance Between Mirror Pairs | Medium | 14 | Array, Hash Table, Math | Solution · LeetCode ↗ | |
| 1207 | Unique Number of Occurrences | Easy | 14 | Array, Hash Table | LeetCode ↗ | |
| 3005 | Count Elements With Maximum Frequency | Easy | 14 | Array, Hash Table, Counting | LeetCode ↗ | |
| 1832 | Check if the Sentence Is Pangram | Easy | 14 | Hash Table, String | LeetCode ↗ | |
| 953 | Verifying an Alien Dictionary | Easy | 14 | Array, Hash Table, String | LeetCode ↗ | |
| 3927 | Minimize Array Sum Using Divisible Replacements | Medium | 14 | Array, Hash Table, Math, Greedy, Number Theory | Solution · LeetCode ↗ | |
| 929 | Unique Email Addresses | Easy | 14 | Array, Hash Table, String | LeetCode ↗ | |
| 448 | Find All Numbers Disappeared in an Array | Easy | 14 | Array, Hash Table | LeetCode ↗ | |
| 1781 | Sum of Beauty of All Substrings | Medium | 14 | Hash Table, String, Counting | Solution · LeetCode ↗ | |
| 2399 | Check Distances Between Same Letters | Easy | 14 | Array, Hash Table, String | LeetCode ↗ | |
| 3016 | Minimum Number of Pushes to Type Word II | Medium | 14 | Hash Table, String, Greedy, Sorting, Counting | Solution · LeetCode ↗ | |
| 4007 | Widest Possible Fence | Medium | 14 | Solution · LeetCode ↗ |
16 solved on the pattern page (step-by-step explanation and a step-through player), 6 Easy warm-ups that link to LeetCode.
28 solved on the pattern page (step-by-step explanation and a step-through player), 13 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 55 | Jump Game | Medium | 58 | Array, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 3914 | Minimum Operations to Make Array Non Decreasing | Medium | 52 | Array, Greedy | Solution · LeetCode ↗ | |
| 179 | Largest Number | Medium | 45 | Array, String, Greedy, Sorting | Solution · LeetCode ↗ | |
| 45 | Jump Game II | Medium | 41 | Array, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 122 | Best Time to Buy and Sell Stock II | Medium | 41 | Array, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 1833 | Maximum Ice Cream Bars | Medium | 39 | Array, Greedy, Sorting, Counting Sort | Solution · LeetCode ↗ | |
| 134 | Gas Station | Medium | 36 | Array, Greedy | Solution · LeetCode ↗ | |
| 1665 | Minimum Initial Energy to Finish Tasks | Hard | 34 | Array, Greedy, Sorting | Solution · LeetCode ↗ | |
| 605 | Can Place Flowers | Easy | 30 | Array, Greedy | LeetCode ↗ | |
| 3635 | Earliest Finish Time for Land and Water Rides II | Medium | 30 | Array, Two Pointers, Binary Search, Greedy, Sorting | Solution · LeetCode ↗ | |
| 1326 | Minimum Number of Taps to Open to Water a Garden | Hard | 30 | Array, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 135 | Candy | Hard | 26 | Array, Greedy | Solution · LeetCode ↗ | |
| 2384 | Largest Palindromic Number | Medium | 26 | Hash Table, String, Greedy, Counting | Solution · LeetCode ↗ | |
| 1331 | Rank Transform of an Array | Easy | 26 | Array, Hash Table, Sorting | LeetCode ↗ | |
| 3499 | Maximize Active Section with Trade I | Medium | 26 | String, Enumeration | Solution · LeetCode ↗ | |
| 561 | Array Partition | Easy | 21 | Array, Greedy, Sorting, Counting Sort | LeetCode ↗ | |
| 274 | H-Index | Medium | 21 | Array, Sorting, Counting Sort | Solution · LeetCode ↗ | |
| 1727 | Largest Submatrix With Rearrangements | Medium | 21 | Array, Greedy, Sorting, Matrix | Solution · LeetCode ↗ | |
| 1029 | Two City Scheduling | Medium | 21 | Array, Greedy, Sorting, Hungarian Algorithm, Successive Shortest Path Algorithm | Solution · LeetCode ↗ | |
| 2144 | Minimum Cost of Buying Candies With Discount | Easy | 21 | Array, Greedy, Sorting | LeetCode ↗ | |
| 3948 | Lexicographically Maximum MEX Array | Hard | 21 | Array, Hash Table, Greedy, Queue | Solution · LeetCode ↗ | |
| 414 | Third Maximum Number | Easy | 21 | Array, Sorting | LeetCode ↗ | |
| 164 | Maximum Gap | Medium | 21 | Array, Sorting, Bucket Sort, Radix Sort, Pigeonhole Principle | Solution · LeetCode ↗ | |
| 1846 | Maximum Element After Decreasing and Rearranging | Medium | 21 | Array, Greedy, Sorting | Solution · LeetCode ↗ | |
| 1502 | Can Make Arithmetic Progression From Sequence | Easy | 21 | Array, Sorting | LeetCode ↗ | |
| 2996 | Smallest Missing Integer Greater Than Sequential Prefix Sum | Easy | 21 | Array, Hash Table, Sorting | LeetCode ↗ | |
| 860 | Lemonade Change | Easy | 14 | Array, Greedy | LeetCode ↗ | |
| 2273 | Find Resultant Array After Removing Anagrams | Easy | 14 | Array, Hash Table, String, Sorting | LeetCode ↗ | |
| 1689 | Partitioning Into Minimum Number Of Deci-Binary Numbers | Medium | 14 | String, Greedy | Solution · LeetCode ↗ | |
| 2078 | Two Furthest Houses With Different Colors | Easy | 14 | Array, Greedy | LeetCode ↗ | |
| 2418 | Sort the People | Easy | 14 | Array, Hash Table, String, Sorting | LeetCode ↗ | |
| 3689 | Maximum Total Subarray Value I | Medium | 14 | Array, Greedy | Solution · LeetCode ↗ | |
| 2405 | Optimal Partition of String | Medium | 14 | Hash Table, String, Greedy | Solution · LeetCode ↗ | |
| 1200 | Minimum Absolute Difference | Easy | 14 | Array, Sorting | LeetCode ↗ | |
| 334 | Increasing Triplet Subsequence | Medium | 14 | Array, Greedy, Longest Increasing Subsequence | Solution · LeetCode ↗ | |
| 2294 | Partition Array Such That Maximum Difference Is K | Medium | 14 | Array, Greedy, Sorting | Solution · LeetCode ↗ | |
| 1221 | Split a String in Balanced Strings | Easy | 14 | String, Greedy, Counting | LeetCode ↗ | |
| 912 | Sort an Array | Medium | 14 | Array, Divide and Conquer, Sorting, Heap (Priority Queue), Merge Sort, Bucket Sort, Radix Sort, Counting Sort | Solution · LeetCode ↗ | |
| 846 | Hand of Straights | Medium | 14 | Array, Hash Table, Greedy, Sorting | Solution · LeetCode ↗ | |
| 517 | Super Washing Machines | Hard | 14 | Array, Greedy | Solution · LeetCode ↗ | |
| 2607 | Make K-Subarray Sums Equal | Medium | 14 | Array, Math, Greedy, Sorting, Number Theory | Solution · LeetCode ↗ |
20 solved on the pattern page (step-by-step explanation and a step-through player), 3 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 146 | LRU Cache | Medium | 80 | Hash Table, Linked List, Design, Doubly-Linked List | Solution · LeetCode ↗ | |
| 380 | Insert Delete GetRandom O(1) | Medium | 41 | Array, Hash Table, Math, Design, Randomized | Solution · LeetCode ↗ | |
| 1429 | First Unique Number Premium | Medium | 36 | Array, Hash Table, Design, Queue, Data Stream | Solution · LeetCode ↗ | |
| 460 | LFU Cache | Hard | 30 | Hash Table, Linked List, Design, Doubly-Linked List | Solution · LeetCode ↗ | |
| 1268 | Search Suggestions System | Medium | 30 | Array, String, Binary Search, Trie, Sorting, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 3043 | Find the Length of the Longest Common Prefix | Medium | 30 | Array, Hash Table, String, Trie | Solution · LeetCode ↗ | |
| 933 | Number of Recent Calls | Easy | 21 | Design, Queue, Data Stream | LeetCode ↗ | |
| 1472 | Design Browser History | Medium | 21 | Array, Linked List, Stack, Design, Doubly-Linked List, Data Stream | Solution · LeetCode ↗ | |
| 348 | Design Tic-Tac-Toe Premium | Medium | 21 | Array, Hash Table, Design, Matrix, Simulation | Solution · LeetCode ↗ | |
| 1622 | Fancy Sequence | Hard | 21 | Math, Design, Segment Tree, Number Theory, Fermat's Little Theorem | Solution · LeetCode ↗ | |
| 3408 | Design Task Manager | Medium | 21 | Hash Table, Design, Heap (Priority Queue), Ordered Set | Solution · LeetCode ↗ | |
| 341 | Flatten Nested List Iterator | Medium | 21 | Stack, Tree, Depth-First Search, Design, Queue, Iterator | Solution · LeetCode ↗ | |
| 211 | Design Add and Search Words Data Structure | Medium | 14 | String, Depth-First Search, Design, Trie | Solution · LeetCode ↗ | |
| 359 | Logger Rate Limiter Premium | Easy | 14 | Hash Table, Design, Data Stream | LeetCode ↗ | |
| 1603 | Design Parking System | Easy | 14 | Design, Simulation, Counting | LeetCode ↗ | |
| 855 | Exam Room | Medium | 14 | Design, Heap (Priority Queue), Ordered Set | Solution · LeetCode ↗ | |
| 895 | Maximum Frequency Stack | Hard | 14 | Hash Table, Stack, Design, Ordered Set | Solution · LeetCode ↗ | |
| 3093 | Longest Common Suffix Queries | Hard | 14 | Array, String, Trie | Solution · LeetCode ↗ | |
| 1797 | Design Authentication Manager | Medium | 14 | Hash Table, Linked List, Design, Doubly-Linked List | Solution · LeetCode ↗ | |
| 588 | Design In-Memory File System Premium | Hard | 14 | Hash Table, String, Design, Trie, Sorting | Solution · LeetCode ↗ | |
| 2013 | Detect Squares | Medium | 14 | Array, Hash Table, Design, Counting, Data Stream | Solution · LeetCode ↗ | |
| 421 | Maximum XOR of Two Numbers in an Array | Medium | 14 | Array, Hash Table, Bit Manipulation, Trie | Solution · LeetCode ↗ | |
| 1233 | Remove Sub-Folders from the Filesystem | Medium | 14 | Array, String, Depth-First Search, Trie | Solution · LeetCode ↗ |
6 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 787 | Cheapest Flights Within K Stops | Medium | 34 | Dynamic Programming, Depth-First Search, Breadth-First Search, Graph Theory, Heap (Priority Queue), Shortest Path | Solution · LeetCode ↗ | |
| 1584 | Min Cost to Connect All Points | Medium | 26 | Array, Union-Find, Graph Theory, Minimum Spanning Tree, Prim's Algorithm, Kruskal's Algorithm, Borůvka's Algorithm | Solution · LeetCode ↗ | |
| 743 | Network Delay Time | Medium | 21 | Depth-First Search, Breadth-First Search, Graph Theory, Heap (Priority Queue), Shortest Path, Dijkstra's Algorithm | Solution · LeetCode ↗ | |
| 3620 | Network Recovery Pathways | Hard | 21 | Array, Binary Search, Dynamic Programming, Graph Theory, Topological Sort, Heap (Priority Queue), Shortest Path | Solution · LeetCode ↗ | |
| 3928 | Minimum Cost to Buy Apples II | Hard | 14 | Array, Graph Theory, Heap (Priority Queue), Shortest Path | Solution · LeetCode ↗ | |
| 1631 | Path With Minimum Effort | Medium | 14 | Array, Binary Search, Depth-First Search, Breadth-First Search, Union-Find, Heap (Priority Queue), Matrix, Dijkstra's Algorithm | Solution · LeetCode ↗ |
17 solved on the pattern page (step-by-step explanation and a step-through player), 40 Easy warm-ups that link to LeetCode.
17 solved on the pattern page (step-by-step explanation and a step-through player), 33 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 9 | Palindrome Number | Easy | 71 | Math | LeetCode ↗ | |
| 7 | Reverse Integer | Medium | 57 | Math | Solution · LeetCode ↗ | |
| 136 | Single Number | Easy | 51 | Array, Bit Manipulation | LeetCode ↗ | |
| 67 | Add Binary | Easy | 48 | Math, String, Bit Manipulation, Simulation | LeetCode ↗ | |
| 1344 | Angle Between Hands of a Clock | Medium | 45 | Math | Solution · LeetCode ↗ | |
| 50 | Pow(x, n) | Medium | 41 | Math, Recursion | Solution · LeetCode ↗ | |
| 66 | Plus One | Easy | 39 | Array, Math | LeetCode ↗ | |
| 204 | Count Primes | Medium | 39 | Array, Math, Enumeration, Number Theory, Primality Test, Sieve Theory, Prime Number Sieve | Solution · LeetCode ↗ | |
| 258 | Add Digits | Easy | 39 | Math, Simulation, Number Theory | LeetCode ↗ | |
| 628 | Maximum Product of Three Numbers | Easy | 39 | Array, Math, Sorting | LeetCode ↗ | |
| 231 | Power of Two | Easy | 36 | Math, Bit Manipulation, Recursion | LeetCode ↗ | |
| 1903 | Largest Odd Number in String | Easy | 36 | Math, String, Greedy | LeetCode ↗ | |
| 29 | Divide Two Integers | Medium | 34 | Math, Bit Manipulation | Solution · LeetCode ↗ | |
| 2235 | Add Two Integers | Easy | 30 | Math | LeetCode ↗ | |
| 645 | Set Mismatch | Easy | 30 | Array, Hash Table, Bit Manipulation, Sorting | LeetCode ↗ | |
| 190 | Reverse Bits | Easy | 30 | Divide and Conquer, Bit Manipulation | LeetCode ↗ | |
| 168 | Excel Sheet Column Title | Easy | 26 | Math, String | LeetCode ↗ | |
| 137 | Single Number II | Medium | 26 | Array, Bit Manipulation | Solution · LeetCode ↗ | |
| 319 | Bulb Switcher | Medium | 26 | Math, Brainteaser | Solution · LeetCode ↗ | |
| 1512 | Number of Good Pairs | Easy | 26 | Array, Hash Table, Math, Counting | LeetCode ↗ | |
| 415 | Add Strings | Easy | 26 | Math, String, Simulation | LeetCode ↗ | |
| 260 | Single Number III | Medium | 26 | Array, Bit Manipulation | Solution · LeetCode ↗ | |
| 3312 | Sorted GCD Pair Queries | Hard | 26 | Array, Hash Table, Math, Binary Search, Combinatorics, Counting, Number Theory, Prefix Sum, Euclidean Algorithm, Greatest Common Divisor | Solution · LeetCode ↗ | |
| 412 | Fizz Buzz | Easy | 21 | Math, String, Simulation | LeetCode ↗ | |
| 371 | Sum of Two Integers | Medium | 21 | Math, Bit Manipulation | Solution · LeetCode ↗ | |
| 389 | Find the Difference | Easy | 21 | Hash Table, String, Bit Manipulation, Sorting | LeetCode ↗ | |
| 1680 | Concatenation of Consecutive Binary Numbers | Medium | 21 | Math, Bit Manipulation, Simulation | Solution · LeetCode ↗ | |
| 1823 | Find the Winner of the Circular Game | Medium | 21 | Array, Math, Recursion, Queue, Simulation | Solution · LeetCode ↗ | |
| 3644 | Maximum K to Sort a Permutation | Medium | 21 | Array, Bit Manipulation | Solution · LeetCode ↗ | |
| 1979 | Find Greatest Common Divisor of Array | Easy | 21 | Array, Math, Number Theory, Euclidean Algorithm, Greatest Common Divisor | LeetCode ↗ | |
| 3014 | Minimum Number of Pushes to Type Word I | Easy | 21 | Math, String, Greedy | LeetCode ↗ | |
| 1071 | Greatest Common Divisor of Strings | Easy | 14 | Math, String, Euclidean Algorithm, Greatest Common Divisor | LeetCode ↗ | |
| 693 | Binary Number with Alternating Bits | Easy | 14 | Bit Manipulation | LeetCode ↗ | |
| 868 | Binary Gap | Easy | 14 | Bit Manipulation | LeetCode ↗ | |
| 1228 | Missing Number In Arithmetic Progression Premium | Easy | 14 | Array, Math | LeetCode ↗ | |
| 318 | Maximum Product of Word Lengths | Medium | 14 | Array, String, Bit Manipulation | Solution · LeetCode ↗ | |
| 171 | Excel Sheet Column Number | Easy | 14 | Math, String | LeetCode ↗ | |
| 728 | Self Dividing Numbers | Easy | 14 | Math | LeetCode ↗ | |
| 1009 | Complement of Base 10 Integer | Easy | 14 | Bit Manipulation | LeetCode ↗ | |
| 1492 | The kth Factor of n | Medium | 14 | Math, Number Theory, Prime Factorization | Solution · LeetCode ↗ | |
| 3304 | Find the K-th Character in String Game I | Easy | 14 | Math, Bit Manipulation, Recursion, Simulation | LeetCode ↗ | |
| 507 | Perfect Number | Easy | 14 | Math | LeetCode ↗ | |
| 3754 | Concatenate Non-Zero Digits and Multiply by Sum I | Easy | 14 | Math | LeetCode ↗ | |
| 3513 | Number of Unique XOR Triplets I | Medium | 14 | Array, Math, Bit Manipulation | Solution · LeetCode ↗ | |
| 3514 | Number of Unique XOR Triplets II | Medium | 14 | Array, Math, Bit Manipulation, Enumeration | Solution · LeetCode ↗ | |
| 3536 | Maximum Product of Two Digits | Easy | 14 | Math, Sorting | LeetCode ↗ | |
| 2469 | Convert the Temperature | Easy | 14 | Math | LeetCode ↗ | |
| 2652 | Sum Multiples | Easy | 14 | Math | LeetCode ↗ | |
| 2520 | Count the Digits That Divide a Number | Easy | 14 | Math | LeetCode ↗ | |
| 191 | Number of 1 Bits | Easy | 14 | Divide and Conquer, Bit Manipulation | LeetCode ↗ |
8 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 721 | Accounts Merge | Medium | 36 | Array, Hash Table, String, Depth-First Search, Breadth-First Search, Union-Find, Sorting | Solution · LeetCode ↗ | |
| 1319 | Number of Operations to Make Network Connected | Medium | 34 | Depth-First Search, Breadth-First Search, Union-Find, Graph Theory | Solution · LeetCode ↗ | |
| 947 | Most Stones Removed with Same Row or Column | Medium | 30 | Hash Table, Depth-First Search, Union-Find, Graph Theory, Bipartite Graph | Solution · LeetCode ↗ | |
| 990 | Satisfiability of Equality Equations | Medium | 21 | Array, String, Union-Find, Graph Theory | Solution · LeetCode ↗ | |
| 3532 | Path Existence Queries in a Graph I | Medium | 21 | Array, Hash Table, Binary Search, Union-Find, Graph Theory | Solution · LeetCode ↗ | |
| 827 | Making A Large Island | Hard | 14 | Array, Depth-First Search, Breadth-First Search, Union-Find, Matrix | Solution · LeetCode ↗ | |
| 684 | Redundant Connection | Medium | 14 | Depth-First Search, Breadth-First Search, Union-Find, Graph Theory | Solution · LeetCode ↗ | |
| 305 | Number of Islands II Premium | Hard | 14 | Array, Hash Table, Union-Find | Solution · LeetCode ↗ |
5 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 493 | Reverse Pairs | Hard | 39 | Array, Binary Search, Divide and Conquer, Binary Indexed Tree, Segment Tree, Merge Sort, Ordered Set, Treap | Solution · LeetCode ↗ | |
| 327 | Count of Range Sum | Hard | 21 | Array, Binary Search, Divide and Conquer, Binary Indexed Tree, Segment Tree, Merge Sort, Ordered Set, Treap | Solution · LeetCode ↗ | |
| 3901 | Good Subsequence Queries | Hard | 14 | Array, Math, Segment Tree, Number Theory | Solution · LeetCode ↗ | |
| 315 | Count of Smaller Numbers After Self | Hard | 14 | Array, Binary Search, Divide and Conquer, Binary Indexed Tree, Segment Tree, Merge Sort, Ordered Set, Treap | Solution · LeetCode ↗ | |
| 2213 | Longest Substring of One Repeating Character | Hard | 14 | Array, String, Segment Tree, Ordered Set | Solution · LeetCode ↗ |
Database and JavaScript problems from the list. They aren't Python algorithm problems, so they link straight to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 176 | Second Highest Salary | Medium | 45 | Database | LeetCode ↗ | |
| 570 | Managers with at Least 5 Direct Reports | Medium | 36 | Database | LeetCode ↗ | |
| 180 | Consecutive Numbers | Medium | 30 | Database | LeetCode ↗ | |
| 1934 | Confirmation Rate | Medium | 26 | Database | LeetCode ↗ | |
| 1070 | Product Sales Analysis III | Medium | 26 | Database | LeetCode ↗ | |
| 1164 | Product Price at a Given Date | Medium | 26 | Database | LeetCode ↗ | |
| 1193 | Monthly Transactions I | Medium | 26 | Database | LeetCode ↗ | |
| 185 | Department Top Three Salaries | Hard | 21 | Database | LeetCode ↗ | |
| 177 | Nth Highest Salary | Medium | 21 | Database | LeetCode ↗ | |
| 178 | Rank Scores | Medium | 21 | Database | LeetCode ↗ | |
| 1341 | Movie Rating | Medium | 21 | Database | LeetCode ↗ | |
| 569 | Median Employee Salary Premium | Hard | 14 | Database | LeetCode ↗ | |
| 550 | Game Play Analysis IV | Medium | 14 | Database | LeetCode ↗ | |
| 184 | Department Highest Salary | Medium | 14 | Database | LeetCode ↗ | |
| 1204 | Last Person to Fit in the Bus | Medium | 14 | Database | LeetCode ↗ | |
| 1158 | Market Analysis I | Medium | 14 | Database | LeetCode ↗ |