All 411 problems from Microsoft's six-month LeetCode list (131 Easy, 218 Medium, 62 Hard), grouped by the pattern that solves them. 319 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 Microsoft 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.
| When | Focus | Patterns (problems on the list) | Total |
|---|---|---|---|
| Month 1 | Foundations: arrays you can scan | 01 · Prefix Sum (17) 02 · Two Pointers (26) 03 · Sliding Window (22) 04 · Fast & Slow Pointers (10) 05 · LinkedList In-place Reversal (13) 21 · Array & String Basics (40) | 128 |
| Month 2 | Stacks, heaps, intervals, binary search | 06 · Monotonic Stack (9) 07 · Top 'K' Elements (15) 08 · Overlapping Intervals (9) 09 · Modified Binary Search (21) 17 · Stack (11) | 65 |
| Month 3 | Trees and graphs | 10 · Binary Tree Traversal (31) 11 · Depth-First Search (DFS) on Graphs (9) 12 · Breadth-First Search (BFS) (10) 13 · Matrix Traversal (9) 23 · Union-Find (Disjoint Set Union) (5) | 64 |
| Month 4 | Search and dynamic programming | 14 · Backtracking (17) 15 · Dynamic Programming Patterns (51) | 68 |
| Month 5 | Hashing, greedy, design, weighted graphs | 16 · Hash Map & Set (17) 18 · Greedy (24) 19 · Trie & Design (4) 20 · Shortest Path & MST (1) | 46 |
| Month 6 | Math, range structures, then mock interviews | 22 · Math & Bit Manipulation (31) 24 · Segment Tree & Fenwick Tree (2) | 33 |
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.
15 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 |
|---|---|---|---|---|---|---|
| 560 | Subarray Sum Equals K | Medium | 70 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 238 | Product of Array Except Self | Medium | 50 | Array, Prefix Sum | Solution · LeetCode ↗ | |
| 525 | Contiguous Array | Medium | 32 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 930 | Binary Subarrays With Sum | Medium | 32 | Array, Hash Table, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 3737 | Count Subarrays With Majority Element I | Medium | 32 | Array, Hash Table, Divide and Conquer, Segment Tree, Merge Sort, Counting, Prefix Sum | Solution · LeetCode ↗ | |
| 1480 | Running Sum of 1d Array | Easy | 32 | Array, Prefix Sum | LeetCode ↗ | |
| 974 | Subarray Sums Divisible by K | Medium | 24 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 523 | Continuous Subarray Sum | Medium | 24 | Array, Hash Table, Math, Prefix Sum, Pigeonhole Principle | Solution · LeetCode ↗ | |
| 3546 | Equal Sum Grid Partition I | Medium | 24 | Array, Matrix, Enumeration, Prefix Sum | Solution · LeetCode ↗ | |
| 2906 | Construct Product Matrix | Medium | 24 | Array, Matrix, Prefix Sum | Solution · LeetCode ↗ | |
| 1674 | Minimum Moves to Make Array Complementary | Medium | 24 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 303 | Range Sum Query - Immutable | Easy | 24 | Array, Design, Prefix Sum | Solution · LeetCode ↗ | |
| 3699 | Number of ZigZag Arrays I | Hard | 24 | Dynamic Programming, Prefix Sum | Solution · LeetCode ↗ | |
| 1732 | Find the Highest Altitude | Easy | 24 | Array, Prefix Sum | LeetCode ↗ | |
| 862 | Shortest Subarray with Sum at Least K | Hard | 24 | Array, Binary Search, Queue, Sliding Window, Heap (Priority Queue), Prefix Sum, Monotonic Queue | Solution · LeetCode ↗ | |
| 1109 | Corporate Flight Bookings | Medium | 24 | Array, Prefix Sum | Solution · LeetCode ↗ | |
| 2381 | Shifting Letters II | Medium | 24 | Array, String, Prefix Sum | Solution · LeetCode ↗ |
19 solved on the pattern page (step-by-step explanation and a step-through player), 7 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 5 | Longest Palindromic Substring | Medium | 79 | Two Pointers, String, Dynamic Programming, Manacher | Solution · LeetCode ↗ | |
| 42 | Trapping Rain Water | Hard | 74 | Array, Two Pointers, Dynamic Programming, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 15 | 3Sum | Medium | 73 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 31 | Next Permutation | Medium | 67 | Array, Two Pointers | Solution · LeetCode ↗ | |
| 11 | Container With Most Water | Medium | 66 | Array, Two Pointers, Greedy | Solution · LeetCode ↗ | |
| 26 | Remove Duplicates from Sorted Array | Easy | 61 | Array, Two Pointers | Solution · LeetCode ↗ | |
| 4 | Median of Two Sorted Arrays | Hard | 57 | Array, Binary Search, Divide and Conquer | Solution · LeetCode ↗ | |
| 88 | Merge Sorted Array | Easy | 55 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 125 | Valid Palindrome | Easy | 55 | Two Pointers, String | Solution · LeetCode ↗ | |
| 189 | Rotate Array | Medium | 52 | Array, Math, Two Pointers | Solution · LeetCode ↗ | |
| 283 | Move Zeroes | Easy | 52 | Array, Two Pointers | LeetCode ↗ | |
| 75 | Sort Colors | Medium | 50 | Array, Two Pointers, Sorting, Quicksort, Bubble Sort | Solution · LeetCode ↗ | |
| 344 | Reverse String | Easy | 46 | Two Pointers, String | Solution · LeetCode ↗ | |
| 16 | 3Sum Closest | Medium | 46 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 167 | Two Sum II - Input Array Is Sorted | Medium | 42 | Array, Two Pointers, Binary Search | Solution · LeetCode ↗ | |
| 1768 | Merge Strings Alternately | Easy | 38 | Two Pointers, String | Solution · LeetCode ↗ | |
| 18 | 4Sum | Medium | 38 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 680 | Valid Palindrome II | Easy | 38 | Two Pointers, String, Greedy | LeetCode ↗ | |
| 27 | Remove Element | Easy | 32 | Array, Two Pointers | LeetCode ↗ | |
| 653 | Two Sum IV - Input is a BST | Easy | 32 | Hash Table, Two Pointers, Tree, Depth-First Search, Breadth-First Search, Binary Search Tree, Binary Tree | LeetCode ↗ | |
| 443 | String Compression | Medium | 32 | Two Pointers, String | Solution · LeetCode ↗ | |
| 2161 | Partition Array According to Given Pivot | Medium | 32 | Array, Two Pointers, Simulation | Solution · LeetCode ↗ | |
| 345 | Reverse Vowels of a String | Easy | 32 | Two Pointers, String | LeetCode ↗ | |
| 392 | Is Subsequence | Easy | 24 | Two Pointers, String, Dynamic Programming | Solution · LeetCode ↗ | |
| 160 | Intersection of Two Linked Lists | Easy | 24 | Hash Table, Linked List, Two Pointers | LeetCode ↗ | |
| 696 | Count Binary Substrings | Easy | 24 | Two Pointers, String | LeetCode ↗ |
22 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 3 | Longest Substring Without Repeating Characters | Medium | 76 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 121 | Best Time to Buy and Sell Stock | Easy | 67 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 76 | Minimum Window Substring | Hard | 64 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 239 | Sliding Window Maximum | Hard | 57 | Array, Queue, Sliding Window, Heap (Priority Queue), Monotonic Queue, Range Minimum/Maximum Query | Solution · LeetCode ↗ | |
| 643 | Maximum Average Subarray I | Easy | 57 | Array, Sliding Window | Solution · LeetCode ↗ | |
| 424 | Longest Repeating Character Replacement | Medium | 52 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 209 | Minimum Size Subarray Sum | Medium | 50 | Array, Binary Search, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 1838 | Frequency of the Most Frequent Element | Medium | 42 | Array, Binary Search, Greedy, Sliding Window, Sorting, Prefix Sum | Solution · LeetCode ↗ | |
| 1004 | Max Consecutive Ones III | Medium | 42 | Array, Binary Search, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 438 | Find All Anagrams in a String | Medium | 38 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 1358 | Number of Substrings Containing All Three Characters | Medium | 38 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 219 | Contains Duplicate II | Easy | 38 | Array, Hash Table, Sliding Window | Solution · LeetCode ↗ | |
| 992 | Subarrays with K Different Integers | Hard | 32 | Array, Hash Table, Sliding Window, Counting | Solution · LeetCode ↗ | |
| 30 | Substring with Concatenation of All Words | Hard | 32 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 1888 | Minimum Number of Flips to Make the Binary String Alternating | Medium | 32 | String, Dynamic Programming, Sliding Window | Solution · LeetCode ↗ | |
| 567 | Permutation in String | Medium | 32 | Hash Table, Two Pointers, String, Sliding Window | Solution · LeetCode ↗ | |
| 1423 | Maximum Points You Can Obtain from Cards | Medium | 24 | Array, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 1461 | Check If a String Contains All Binary Codes of Size K | Medium | 24 | Hash Table, String, Bit Manipulation, Rolling Hash, Hash Function, Directed Acyclic Graph | Solution · LeetCode ↗ | |
| 1456 | Maximum Number of Vowels in a Substring of Given Length | Medium | 24 | String, Sliding Window | Solution · LeetCode ↗ | |
| 1208 | Get Equal Substrings Within Budget | Medium | 24 | String, Binary Search, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 187 | Repeated DNA Sequences | Medium | 24 | Hash Table, String, Bit Manipulation, Sliding Window, Rolling Hash, Hash Function, Z Algorithm, Boyer–Moore String-Search Algorithm | Solution · LeetCode ↗ | |
| 1343 | Number of Sub-arrays of Size K and Average Greater than or Equal to Threshold | Medium | 24 | Array, Sliding Window | Solution · LeetCode ↗ |
10 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 143 | Reorder List | Medium | 52 | Linked List, Two Pointers, Stack, Recursion | Solution · LeetCode ↗ | |
| 202 | Happy Number | Easy | 50 | Hash Table, Math, Two Pointers, Floyd's Cycle Finding Algorithm | Solution · LeetCode ↗ | |
| 234 | Palindrome Linked List | Easy | 38 | Linked List, Two Pointers, Stack, Recursion | Solution · LeetCode ↗ | |
| 876 | Middle of the Linked List | Easy | 38 | Linked List, Two Pointers | Solution · LeetCode ↗ | |
| 287 | Find the Duplicate Number | Medium | 38 | Array, Two Pointers, Binary Search, Bit Manipulation, Pigeonhole Principle, Floyd's Cycle Finding Algorithm | Solution · LeetCode ↗ | |
| 141 | Linked List Cycle | Easy | 38 | Hash Table, Linked List, Two Pointers, Floyd's Cycle Finding Algorithm | Solution · LeetCode ↗ | |
| 142 | Linked List Cycle II | Medium | 32 | Hash Table, Linked List, Two Pointers, Floyd's Cycle Finding Algorithm | Solution · LeetCode ↗ | |
| 41 | First Missing Positive | Hard | 24 | Array, Hash Table | Solution · LeetCode ↗ | |
| 19 | Remove Nth Node From End of List | Medium | 24 | Linked List, Two Pointers | Solution · LeetCode ↗ | |
| 2095 | Delete the Middle Node of a Linked List | Medium | 24 | Linked List, Two Pointers | Solution · LeetCode ↗ |
11 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 |
|---|---|---|---|---|---|---|
| 2 | Add Two Numbers | Medium | 77 | Linked List, Math, Recursion | Solution · LeetCode ↗ | |
| 21 | Merge Two Sorted Lists | Easy | 52 | Linked List, Recursion | Solution · LeetCode ↗ | |
| 138 | Copy List with Random Pointer | Medium | 52 | Hash Table, Linked List | Solution · LeetCode ↗ | |
| 206 | Reverse Linked List | Easy | 50 | Linked List, Recursion | Solution · LeetCode ↗ | |
| 25 | Reverse Nodes in k-Group | Hard | 42 | Linked List, Recursion | Solution · LeetCode ↗ | |
| 61 | Rotate List | Medium | 42 | Linked List, Two Pointers | Solution · LeetCode ↗ | |
| 92 | Reverse Linked List II | Medium | 38 | Linked List | Solution · LeetCode ↗ | |
| 83 | Remove Duplicates from Sorted List | Easy | 38 | Linked List | Solution · LeetCode ↗ | |
| 237 | Delete Node in a Linked List | Medium | 32 | Linked List | Solution · LeetCode ↗ | |
| 706 | Design HashMap | Easy | 24 | Array, Hash Table, Linked List, Design, Hash Function | LeetCode ↗ | |
| 24 | Swap Nodes in Pairs | Medium | 24 | Linked List, Recursion | Solution · LeetCode ↗ | |
| 203 | Remove Linked List Elements | Easy | 24 | Linked List, Recursion | LeetCode ↗ | |
| 86 | Partition List | Medium | 24 | Linked List, Two Pointers | Solution · LeetCode ↗ |
8 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 |
|---|---|---|---|---|---|---|
| 1475 | Final Prices With a Special Discount in a Shop | Easy | 57 | Array, Stack, Monotonic Stack | LeetCode ↗ | |
| 84 | Largest Rectangle in Histogram | Hard | 46 | Array, Stack, Monotonic Stack, Range Minimum/Maximum Query | Solution · LeetCode ↗ | |
| 496 | Next Greater Element I | Easy | 46 | Array, Hash Table, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 85 | Maximal Rectangle | Hard | 46 | Array, Dynamic Programming, Stack, Matrix, Monotonic Stack | Solution · LeetCode ↗ | |
| 739 | Daily Temperatures | Medium | 42 | Array, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 907 | Sum of Subarray Minimums | Medium | 32 | Array, Dynamic Programming, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 503 | Next Greater Element II | Medium | 32 | Array, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 1696 | Jump Game VI | Medium | 24 | Array, Dynamic Programming, Queue, Heap (Priority Queue), Monotonic Queue | Solution · LeetCode ↗ | |
| 402 | Remove K Digits | Medium | 24 | String, Stack, Greedy, Monotonic Stack | Solution · LeetCode ↗ |
14 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 |
|---|---|---|---|---|---|---|
| 23 | Merge k Sorted Lists | Hard | 55 | Linked List, Divide and Conquer, Heap (Priority Queue), Merge Sort, Tournament Sort | Solution · LeetCode ↗ | |
| 295 | Find Median from Data Stream | Hard | 46 | Two Pointers, Design, Sorting, Heap (Priority Queue), Data Stream | Solution · LeetCode ↗ | |
| 347 | Top K Frequent Elements | Medium | 46 | Array, Hash Table, Divide and Conquer, Sorting, Heap (Priority Queue), Bucket Sort, Counting, Quickselect | Solution · LeetCode ↗ | |
| 621 | Task Scheduler | Medium | 42 | Array, Hash Table, Greedy, Sorting, Heap (Priority Queue), Counting | Solution · LeetCode ↗ | |
| 1353 | Maximum Number of Events That Can Be Attended | Medium | 42 | Array, Greedy, Sorting, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 215 | Kth Largest Element in an Array | Medium | 38 | Array, Divide and Conquer, Sorting, Heap (Priority Queue), Quickselect | Solution · LeetCode ↗ | |
| 451 | Sort Characters By Frequency | Medium | 38 | Hash Table, String, Sorting, Heap (Priority Queue), Bucket Sort, Counting | Solution · LeetCode ↗ | |
| 373 | Find K Pairs with Smallest Sums | Medium | 32 | Array, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 658 | Find K Closest Elements | Medium | 24 | Array, Two Pointers, Binary Search, Sliding Window, Sorting, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 632 | Smallest Range Covering Elements from K Lists | Hard | 24 | Array, Hash Table, Greedy, Sliding Window, Sorting, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 703 | Kth Largest Element in a Stream | Easy | 24 | Tree, Design, Binary Search Tree, Heap (Priority Queue), Binary Tree, Data Stream | Solution · LeetCode ↗ | |
| 264 | Ugly Number II | Medium | 24 | Hash Table, Math, Dynamic Programming, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 1046 | Last Stone Weight | Easy | 24 | Array, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 2402 | Meeting Rooms III | Hard | 24 | Array, Hash Table, Sorting, Heap (Priority Queue), Simulation | Solution · LeetCode ↗ | |
| 1464 | Maximum Product of Two Elements in an Array | Easy | 24 | Array, Sorting, Heap (Priority Queue) | LeetCode ↗ |
9 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 56 | Merge Intervals | Medium | 70 | Array, Sorting, Quicksort | Solution · LeetCode ↗ | |
| 253 | Meeting Rooms II Premium | Medium | 52 | Array, Two Pointers, Greedy, Sorting, Heap (Priority Queue), Prefix Sum | Solution · LeetCode ↗ | |
| 435 | Non-overlapping Intervals | Medium | 38 | Array, Dynamic Programming, Greedy, Sorting | Solution · LeetCode ↗ | |
| 986 | Interval List Intersections | Medium | 32 | Array, Two Pointers, Sweep Line | Solution · LeetCode ↗ | |
| 763 | Partition Labels | Medium | 32 | Hash Table, Two Pointers, String, Greedy | Solution · LeetCode ↗ | |
| 1288 | Remove Covered Intervals | Medium | 32 | Array, Sorting | Solution · LeetCode ↗ | |
| 57 | Insert Interval | Medium | 24 | Array | Solution · LeetCode ↗ | |
| 2021 | Brightest Position on Street Premium | Medium | 24 | Array, Sorting, Prefix Sum, Ordered Set | Solution · LeetCode ↗ | |
| 218 | The Skyline Problem | Hard | 24 | Array, Divide and Conquer, Binary Indexed Tree, Segment Tree, Sweep Line, Sorting, Heap (Priority Queue), Ordered Set | Solution · LeetCode ↗ |
18 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 |
|---|---|---|---|---|---|---|
| 33 | Search in Rotated Sorted Array | Medium | 62 | Array, Binary Search | Solution · LeetCode ↗ | |
| 875 | Koko Eating Bananas | Medium | 57 | Array, Binary Search | Solution · LeetCode ↗ | |
| 74 | Search a 2D Matrix | Medium | 52 | Array, Binary Search, Matrix | Solution · LeetCode ↗ | |
| 540 | Single Element in a Sorted Array | Medium | 50 | Array, Binary Search | Solution · LeetCode ↗ | |
| 704 | Binary Search | Easy | 50 | Array, Binary Search | Solution · LeetCode ↗ | |
| 35 | Search Insert Position | Easy | 46 | Array, Binary Search | Solution · LeetCode ↗ | |
| 1011 | Capacity To Ship Packages Within D Days | Medium | 42 | Array, Binary Search | Solution · LeetCode ↗ | |
| 475 | Heaters | Medium | 42 | Array, Two Pointers, Binary Search, Sorting | Solution · LeetCode ↗ | |
| 162 | Find Peak Element | Medium | 38 | Array, Binary Search | Solution · LeetCode ↗ | |
| 349 | Intersection of Two Arrays | Easy | 38 | Array, Hash Table, Two Pointers, Binary Search, Sorting | LeetCode ↗ | |
| 410 | Split Array Largest Sum | Hard | 38 | Array, Binary Search, Dynamic Programming, Greedy, Prefix Sum | Solution · LeetCode ↗ | |
| 1283 | Find the Smallest Divisor Given a Threshold | Medium | 38 | Array, Binary Search | Solution · LeetCode ↗ | |
| 34 | Find First and Last Position of Element in Sorted Array | Medium | 32 | Array, Binary Search | Solution · LeetCode ↗ | |
| 69 | Sqrt(x) | Easy | 32 | Math, Binary Search, Newton's Method | LeetCode ↗ | |
| 268 | Missing Number | Easy | 32 | Array, Hash Table, Math, Binary Search, Bit Manipulation, Sorting | LeetCode ↗ | |
| 240 | Search a 2D Matrix II | Medium | 32 | Array, Binary Search, Divide and Conquer, Matrix | Solution · LeetCode ↗ | |
| 1552 | Magnetic Force Between Two Balls | Medium | 24 | Array, Binary Search, Sorting | Solution · LeetCode ↗ | |
| 278 | First Bad Version | Easy | 24 | Binary Search, Interactive | Solution · LeetCode ↗ | |
| 2080 | Range Frequency Queries | Medium | 24 | Array, Hash Table, Binary Search, Design, Segment Tree | Solution · LeetCode ↗ | |
| 1235 | Maximum Profit in Job Scheduling | Hard | 24 | Array, Binary Search, Dynamic Programming, Sorting | Solution · LeetCode ↗ | |
| 81 | Search in Rotated Sorted Array II | Medium | 24 | Array, Binary Search | Solution · LeetCode ↗ |
28 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 |
|---|---|---|---|---|---|---|
| 297 | Serialize and Deserialize Binary Tree | Hard | 52 | String, Tree, Depth-First Search, Breadth-First Search, Design, Binary Tree | Solution · LeetCode ↗ | |
| 105 | Construct Binary Tree from Preorder and Inorder Traversal | Medium | 50 | Array, Hash Table, Divide and Conquer, Tree, Binary Tree | Solution · LeetCode ↗ | |
| 543 | Diameter of Binary Tree | Easy | 46 | Tree, Depth-First Search, Binary Tree, DP on Trees | Solution · LeetCode ↗ | |
| 987 | Vertical Order Traversal of a Binary Tree | Hard | 46 | Hash Table, Tree, Depth-First Search, Breadth-First Search, Sorting, Binary Tree | Solution · LeetCode ↗ | |
| 98 | Validate Binary Search Tree | Medium | 42 | Tree, Depth-First Search, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 104 | Maximum Depth of Binary Tree | Easy | 42 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 101 | Symmetric Tree | Easy | 42 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 110 | Balanced Binary Tree | Easy | 42 | Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 100 | Same Tree | Easy | 38 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 124 | Binary Tree Maximum Path Sum | Hard | 38 | Dynamic Programming, Tree, Depth-First Search, Binary Tree, DP on Trees | Solution · LeetCode ↗ | |
| 103 | Binary Tree Zigzag Level Order Traversal | Medium | 32 | Tree, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 102 | Binary Tree Level Order Traversal | Medium | 32 | Tree, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 235 | Lowest Common Ancestor of a Binary Search Tree | Medium | 32 | Tree, Depth-First Search, Binary Search Tree, Binary Tree, Binary Lifting, Lowest Common Ancestor | Solution · LeetCode ↗ | |
| 199 | Binary Tree Right Side View | Medium | 32 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 230 | Kth Smallest Element in a BST | Medium | 32 | Tree, Depth-First Search, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 2385 | Amount of Time for Binary Tree to Be Infected | Medium | 32 | Hash Table, Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 173 | Binary Search Tree Iterator | Medium | 32 | Stack, Tree, Design, Binary Search Tree, Binary Tree, Iterator | Solution · LeetCode ↗ | |
| 113 | Path Sum II | Medium | 32 | Backtracking, Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 226 | Invert Binary Tree | Easy | 32 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 545 | Boundary of Binary Tree Premium | Medium | 24 | Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 114 | Flatten Binary Tree to Linked List | Medium | 24 | Linked List, Stack, Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 404 | Sum of Left Leaves | Easy | 24 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | LeetCode ↗ | |
| 1932 | Merge BSTs to Create Single BST | Hard | 24 | Array, Hash Table, Tree, Depth-First Search, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 428 | Serialize and Deserialize N-ary Tree Premium | Hard | 24 | String, Tree, Depth-First Search, Breadth-First Search | Solution · LeetCode ↗ | |
| 108 | Convert Sorted Array to Binary Search Tree | Easy | 24 | Array, Divide and Conquer, Tree, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 144 | Binary Tree Preorder Traversal | Easy | 24 | Stack, Tree, Depth-First Search, Binary Tree | LeetCode ↗ | |
| 95 | Unique Binary Search Trees II | Medium | 24 | Dynamic Programming, Backtracking, Tree, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 2791 | Count Paths That Can Form a Palindrome in a Tree | Hard | 24 | Hash Table, Bit Manipulation, Tree, Depth-First Search | Solution · LeetCode ↗ | |
| 96 | Unique Binary Search Trees | Medium | 24 | Math, Dynamic Programming, Tree, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 700 | Search in a Binary Search Tree | Easy | 24 | Tree, Binary Search Tree, Binary Tree | LeetCode ↗ | |
| 337 | House Robber III | Medium | 24 | Dynamic Programming, Tree, Depth-First Search, Binary Tree, DP on Trees | Solution · LeetCode ↗ |
9 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 2858 | Minimum Edge Reversals So Every Node Is Reachable | Hard | 59 | Dynamic Programming, Depth-First Search, Breadth-First Search, Graph Theory | Solution · LeetCode ↗ | |
| 207 | Course Schedule | Medium | 32 | Depth-First Search, Breadth-First Search, Graph Theory, Topological Sort, Directed Acyclic Graph | Solution · LeetCode ↗ | |
| 210 | Course Schedule II | Medium | 32 | Depth-First Search, Breadth-First Search, Graph Theory, Topological Sort | Solution · LeetCode ↗ | |
| 399 | Evaluate Division | Medium | 32 | Array, String, Depth-First Search, Breadth-First Search, Union-Find, Graph Theory, Shortest Path, Bellman–Ford Algorithm, Floyd–Warshall Algorithm | Solution · LeetCode ↗ | |
| 329 | Longest Increasing Path in a Matrix | Hard | 32 | Array, Dynamic Programming, Depth-First Search, Breadth-First Search, Graph Theory, Topological Sort, Memoization, Matrix, Directed Acyclic Graph | Solution · LeetCode ↗ | |
| 1971 | Find if Path Exists in Graph | Easy | 24 | Depth-First Search, Breadth-First Search, Union-Find, Graph Theory | Solution · LeetCode ↗ | |
| 2050 | Parallel Courses III | Hard | 24 | Array, Dynamic Programming, Graph Theory, Topological Sort, Directed Acyclic Graph | Solution · LeetCode ↗ | |
| 802 | Find Eventual Safe States | Medium | 24 | Depth-First Search, Breadth-First Search, Graph Theory, Topological Sort, Kosaraju's Algorithm, Tarjan's SCC Algorithm | Solution · LeetCode ↗ | |
| 785 | Is Graph Bipartite? | Medium | 24 | Depth-First Search, Breadth-First Search, Union-Find, Graph Theory, Graph Coloring, Bipartite Graph | Solution · LeetCode ↗ |
10 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 994 | Rotting Oranges | Medium | 57 | Array, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 863 | All Nodes Distance K in Binary Tree | Medium | 46 | Hash Table, Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 1091 | Shortest Path in Binary Matrix | Medium | 32 | Array, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 752 | Open the Lock | Medium | 24 | Array, Hash Table, String, Breadth-First Search, Bidirectional Search | Solution · LeetCode ↗ | |
| 310 | Minimum Height Trees | Medium | 24 | Depth-First Search, Breadth-First Search, Graph Theory, Topological Sort | Solution · LeetCode ↗ | |
| 542 | 01 Matrix | Medium | 24 | Array, Dynamic Programming, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 847 | Shortest Path Visiting All Nodes | Hard | 24 | Dynamic Programming, Bit Manipulation, Breadth-First Search, Graph Theory, Bitmask | Solution · LeetCode ↗ | |
| 1236 | Web Crawler Premium | Medium | 24 | String, Depth-First Search, Breadth-First Search, Interactive | Solution · LeetCode ↗ | |
| 117 | Populating Next Right Pointers in Each Node II | Medium | 24 | Linked List, Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 126 | Word Ladder II | Hard | 24 | Hash Table, String, Backtracking, Breadth-First Search, Bidirectional Search | Solution · LeetCode ↗ |
9 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 200 | Number of Islands | Medium | 70 | Array, Depth-First Search, Breadth-First Search, Union-Find, Matrix | Solution · LeetCode ↗ | |
| 48 | Rotate Image | Medium | 52 | Array, Math, Matrix | Solution · LeetCode ↗ | |
| 54 | Spiral Matrix | Medium | 46 | Array, Matrix, Simulation | Solution · LeetCode ↗ | |
| 73 | Set Matrix Zeroes | Medium | 46 | Array, Hash Table, Matrix | Solution · LeetCode ↗ | |
| 130 | Surrounded Regions | Medium | 42 | Array, Depth-First Search, Breadth-First Search, Union-Find, Matrix | Solution · LeetCode ↗ | |
| 733 | Flood Fill | Easy | 38 | Array, Depth-First Search, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 407 | Trapping Rain Water II | Hard | 24 | Array, Breadth-First Search, Heap (Priority Queue), Matrix | Solution · LeetCode ↗ | |
| 417 | Pacific Atlantic Water Flow | Medium | 24 | Array, Depth-First Search, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 498 | Diagonal Traverse | Medium | 24 | Array, Matrix, Simulation | Solution · LeetCode ↗ |
15 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 |
|---|---|---|---|---|---|---|
| 22 | Generate Parentheses | Medium | 64 | String, Dynamic Programming, Backtracking, Bracket Sequences | Solution · LeetCode ↗ | |
| 17 | Letter Combinations of a Phone Number | Medium | 57 | Hash Table, String, Backtracking | Solution · LeetCode ↗ | |
| 51 | N-Queens | Hard | 55 | Array, Backtracking, Algorithm X | Solution · LeetCode ↗ | |
| 78 | Subsets | Medium | 52 | Array, Backtracking, Bit Manipulation | Solution · LeetCode ↗ | |
| 46 | Permutations | Medium | 46 | Array, Backtracking | Solution · LeetCode ↗ | |
| 79 | Word Search | Medium | 42 | Array, String, Backtracking, Depth-First Search, Matrix | Solution · LeetCode ↗ | |
| 90 | Subsets II | Medium | 42 | Array, Backtracking, Bit Manipulation | Solution · LeetCode ↗ | |
| 216 | Combination Sum III | Medium | 38 | Array, Backtracking | Solution · LeetCode ↗ | |
| 526 | Beautiful Arrangement | Medium | 38 | Array, Dynamic Programming, Backtracking, Bit Manipulation, Bitmask | Solution · LeetCode ↗ | |
| 93 | Restore IP Addresses | Medium | 32 | String, Backtracking | Solution · LeetCode ↗ | |
| 131 | Palindrome Partitioning | Medium | 32 | String, Dynamic Programming, Backtracking | Solution · LeetCode ↗ | |
| 698 | Partition to K Equal Sum Subsets | Medium | 32 | Array, Dynamic Programming, Backtracking, Bit Manipulation, Memoization, Bitmask | Solution · LeetCode ↗ | |
| 140 | Word Break II | Hard | 32 | Array, Hash Table, String, Dynamic Programming, Backtracking, Trie, Memoization | Solution · LeetCode ↗ | |
| 39 | Combination Sum | Medium | 32 | Array, Backtracking | Solution · LeetCode ↗ | |
| 1980 | Find Unique Binary String | Medium | 24 | Array, Hash Table, String, Backtracking | Solution · LeetCode ↗ | |
| 257 | Binary Tree Paths | Easy | 24 | String, Backtracking, Tree, Depth-First Search, Binary Tree | LeetCode ↗ | |
| 401 | Binary Watch | Easy | 24 | Backtracking, Bit Manipulation | LeetCode ↗ |
50 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 |
|---|---|---|---|---|---|---|
| 53 | Maximum Subarray | Medium | 73 | Array, Divide and Conquer, Dynamic Programming | Solution · LeetCode ↗ | |
| 70 | Climbing Stairs | Easy | 57 | Math, Dynamic Programming, Memoization | Solution · LeetCode ↗ | |
| 509 | Fibonacci Number | Easy | 57 | Math, Dynamic Programming, Recursion, Memoization | Solution · LeetCode ↗ | |
| 198 | House Robber | Medium | 55 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 300 | Longest Increasing Subsequence | Medium | 52 | Array, Binary Search, Dynamic Programming, Longest Increasing Subsequence | Solution · LeetCode ↗ | |
| 322 | Coin Change | Medium | 50 | Array, Dynamic Programming, Breadth-First Search, Knapsack Problem, Complete Knapsack | Solution · LeetCode ↗ | |
| 62 | Unique Paths | Medium | 50 | Math, Dynamic Programming, Combinatorics | Solution · LeetCode ↗ | |
| 118 | Pascal's Triangle | Easy | 46 | Array, Dynamic Programming | LeetCode ↗ | |
| 139 | Word Break | Medium | 42 | Array, Hash Table, String, Dynamic Programming, Trie, Memoization, Brute-Force Search | Solution · LeetCode ↗ | |
| 44 | Wildcard Matching | Hard | 42 | String, Dynamic Programming, Greedy, Recursion | Solution · LeetCode ↗ | |
| 312 | Burst Balloons | Hard | 42 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 1143 | Longest Common Subsequence | Medium | 42 | String, Dynamic Programming, Longest Common Subsequence | Solution · LeetCode ↗ | |
| 72 | Edit Distance | Medium | 38 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 32 | Longest Valid Parentheses | Hard | 38 | String, Dynamic Programming, Stack, Bracket Sequences | Solution · LeetCode ↗ | |
| 1547 | Minimum Cost to Cut a Stick | Hard | 38 | Array, Dynamic Programming, Sorting | Solution · LeetCode ↗ | |
| 10 | Regular Expression Matching | Hard | 32 | String, Dynamic Programming, Recursion | Solution · LeetCode ↗ | |
| 64 | Minimum Path Sum | Medium | 32 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 1335 | Minimum Difficulty of a Job Schedule | Hard | 32 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 2472 | Maximum Number of Non-overlapping Palindrome Substrings | Hard | 32 | Two Pointers, String, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 647 | Palindromic Substrings | Medium | 32 | Two Pointers, String, Dynamic Programming | Solution · LeetCode ↗ | |
| 91 | Decode Ways | Medium | 32 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 516 | Longest Palindromic Subsequence | Medium | 32 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 1594 | Maximum Non Negative Product in a Matrix | Medium | 32 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 518 | Coin Change II | Medium | 32 | Array, Dynamic Programming, Knapsack Problem, Complete Knapsack | Solution · LeetCode ↗ | |
| 233 | Number of Digit One | Hard | 32 | Math, Dynamic Programming, Recursion | Solution · LeetCode ↗ | |
| 2484 | Count Palindromic Subsequences | Hard | 32 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 837 | New 21 Game | Medium | 32 | Math, Dynamic Programming, Sliding Window, Probability and Statistics | Solution · LeetCode ↗ | |
| 486 | Predict the Winner | Medium | 32 | Array, Math, Dynamic Programming, Recursion, Minimax, Game Theory, Zero-Sum Game | Solution · LeetCode ↗ | |
| 877 | Stone Game | Medium | 32 | Array, Math, Dynamic Programming, Minimax, Game Theory, Zero-Sum Game | Solution · LeetCode ↗ | |
| 132 | Palindrome Partitioning II | Hard | 24 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 115 | Distinct Subsequences | Hard | 24 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 2977 | Minimum Cost to Convert String II | Hard | 24 | Array, String, Dynamic Programming, Graph Theory, Trie, Shortest Path | Solution · LeetCode ↗ | |
| 3418 | Maximum Amount of Money Robot Can Earn | Medium | 24 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 3742 | Maximum Path Score in a Grid | Medium | 24 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 3946 | Maximum Number of Items From Sale I | Medium | 24 | Array, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 1000 | Minimum Cost to Merge Stones | Hard | 24 | Array, Dynamic Programming, Prefix Sum | Solution · LeetCode ↗ | |
| 3753 | Total Waviness of Numbers in Range II | Hard | 24 | Math, Dynamic Programming | Solution · LeetCode ↗ | |
| 120 | Triangle | Medium | 24 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 416 | Partition Equal Subset Sum | Medium | 24 | Array, Dynamic Programming, Knapsack Problem, 0-1 Knapsack | Solution · LeetCode ↗ | |
| 188 | Best Time to Buy and Sell Stock IV | Hard | 24 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 740 | Delete and Earn | Medium | 24 | Array, Hash Table, Dynamic Programming | Solution · LeetCode ↗ | |
| 3336 | Find the Number of Subsequences With Equal GCD | Hard | 24 | Array, Math, Dynamic Programming, Number Theory, Euclidean Algorithm, Greatest Common Divisor | Solution · LeetCode ↗ | |
| 918 | Maximum Sum Circular Subarray | Medium | 24 | Array, Divide and Conquer, Dynamic Programming, Queue, Monotonic Queue | Solution · LeetCode ↗ | |
| 343 | Integer Break | Medium | 24 | Math, Dynamic Programming | Solution · LeetCode ↗ | |
| 279 | Perfect Squares | Medium | 24 | Math, Dynamic Programming, Breadth-First Search, Knapsack Problem, Complete Knapsack | Solution · LeetCode ↗ | |
| 368 | Largest Divisible Subset | Medium | 24 | Array, Math, Dynamic Programming, Sorting | Solution · LeetCode ↗ | |
| 1140 | Stone Game II | Medium | 24 | Array, Math, Dynamic Programming, Minimax, Prefix Sum, Game Theory, Zero-Sum Game | Solution · LeetCode ↗ | |
| 464 | Can I Win | Medium | 24 | Math, Dynamic Programming, Bit Manipulation, Memoization, Game Theory, Bitmask | Solution · LeetCode ↗ | |
| 494 | Target Sum | Medium | 24 | Array, Dynamic Programming, Backtracking, Knapsack Problem, 0-1 Knapsack | Solution · LeetCode ↗ | |
| 63 | Unique Paths II | Medium | 24 | Array, Dynamic Programming, Matrix | Solution · LeetCode ↗ | |
| 357 | Count Numbers with Unique Digits | Medium | 24 | Math, Dynamic Programming, Backtracking | Solution · LeetCode ↗ |
14 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 |
|---|---|---|---|---|---|---|
| 1 | Two Sum | Easy | 100 | Array, Hash Table | Solution · LeetCode ↗ | |
| 242 | Valid Anagram | Easy | 62 | Hash Table, String, Sorting | Solution · LeetCode ↗ | |
| 128 | Longest Consecutive Sequence | Medium | 57 | Array, Hash Table, Union-Find | Solution · LeetCode ↗ | |
| 169 | Majority Element | Easy | 55 | Array, Hash Table, Divide and Conquer, Sorting, Counting, Boyer–Moore Majority Vote Algorithm | Solution · LeetCode ↗ | |
| 217 | Contains Duplicate | Easy | 55 | Array, Hash Table, Sorting | Solution · LeetCode ↗ | |
| 49 | Group Anagrams | Medium | 46 | Array, Hash Table, String, Sorting | Solution · LeetCode ↗ | |
| 383 | Ransom Note | Easy | 38 | Hash Table, String, Counting | Solution · LeetCode ↗ | |
| 387 | First Unique Character in a String | Easy | 32 | Hash Table, String, Queue, Counting | LeetCode ↗ | |
| 205 | Isomorphic Strings | Easy | 32 | Hash Table, String | Solution · LeetCode ↗ | |
| 448 | Find All Numbers Disappeared in an Array | Easy | 32 | Array, Hash Table | LeetCode ↗ | |
| 229 | Majority Element II | Medium | 32 | Array, Hash Table, Sorting, Counting, Boyer–Moore Majority Vote Algorithm | Solution · LeetCode ↗ | |
| 36 | Valid Sudoku | Medium | 32 | Array, Hash Table, Matrix | Solution · LeetCode ↗ | |
| 2840 | Check if Strings Can be Made Equal With Operations II | Medium | 24 | Hash Table, String, Sorting | Solution · LeetCode ↗ | |
| 3741 | Minimum Distance Between Three Equal Elements II | Medium | 24 | Array, Hash Table | Solution · LeetCode ↗ | |
| 3761 | Minimum Absolute Distance Between Mirror Pairs | Medium | 24 | Array, Hash Table, Math | Solution · LeetCode ↗ | |
| 929 | Unique Email Addresses | Easy | 24 | Array, Hash Table, String | LeetCode ↗ | |
| 290 | Word Pattern | Easy | 24 | Hash Table, String | Solution · LeetCode ↗ |
8 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 |
|---|---|---|---|---|---|---|
| 20 | Valid Parentheses | Easy | 61 | String, Stack, Bracket Sequences | Solution · LeetCode ↗ | |
| 155 | Min Stack | Medium | 50 | Stack, Design | Solution · LeetCode ↗ | |
| 224 | Basic Calculator | Hard | 50 | Math, String, Stack, Recursion | Solution · LeetCode ↗ | |
| 232 | Implement Queue using Stacks | Easy | 42 | Stack, Design, Queue | LeetCode ↗ | |
| 678 | Valid Parenthesis String | Medium | 32 | String, Dynamic Programming, Stack, Greedy, Bracket Sequences | Solution · LeetCode ↗ | |
| 622 | Design Circular Queue | Medium | 32 | Array, Linked List, Design, Queue | Solution · LeetCode ↗ | |
| 735 | Asteroid Collision | Medium | 32 | Array, Stack, Simulation | Solution · LeetCode ↗ | |
| 1441 | Build an Array With Stack Operations | Medium | 24 | Array, Stack, Simulation | Solution · LeetCode ↗ | |
| 1021 | Remove Outermost Parentheses | Easy | 24 | String, Stack, Bracket Sequences | LeetCode ↗ | |
| 71 | Simplify Path | Medium | 24 | String, Stack | Solution · LeetCode ↗ | |
| 1544 | Make The String Great | Easy | 24 | String, Stack | LeetCode ↗ |
16 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 |
|---|---|---|---|---|---|---|
| 45 | Jump Game II | Medium | 46 | Array, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 55 | Jump Game | Medium | 42 | Array, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 179 | Largest Number | Medium | 42 | Array, String, Greedy, Sorting | Solution · LeetCode ↗ | |
| 122 | Best Time to Buy and Sell Stock II | Medium | 38 | Array, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 334 | Increasing Triplet Subsequence | Medium | 38 | Array, Greedy, Longest Increasing Subsequence | Solution · LeetCode ↗ | |
| 274 | H-Index | Medium | 32 | Array, Sorting, Counting Sort | Solution · LeetCode ↗ | |
| 134 | Gas Station | Medium | 32 | Array, Greedy | Solution · LeetCode ↗ | |
| 605 | Can Place Flowers | Easy | 32 | Array, Greedy | LeetCode ↗ | |
| 135 | Candy | Hard | 24 | Array, Greedy | Solution · LeetCode ↗ | |
| 761 | Special Binary String | Hard | 24 | String, Divide and Conquer, Sorting | Solution · LeetCode ↗ | |
| 1365 | How Many Numbers Are Smaller Than the Current Number | Easy | 24 | Array, Hash Table, Sorting, Counting Sort | LeetCode ↗ | |
| 747 | Largest Number At Least Twice of Others | Easy | 24 | Array, Sorting | LeetCode ↗ | |
| 1727 | Largest Submatrix With Rearrangements | Medium | 24 | Array, Greedy, Sorting, Matrix | Solution · LeetCode ↗ | |
| 1710 | Maximum Units on a Truck | Easy | 24 | Array, Greedy, Sorting | LeetCode ↗ | |
| 2784 | Check if Array is Good | Easy | 24 | Array, Hash Table, Sorting | LeetCode ↗ | |
| 2418 | Sort the People | Easy | 24 | Array, Hash Table, String, Sorting | LeetCode ↗ | |
| 1840 | Maximum Building Height | Hard | 24 | Array, Math, Sorting | Solution · LeetCode ↗ | |
| 3499 | Maximize Active Section with Trade I | Medium | 24 | String, Enumeration | Solution · LeetCode ↗ | |
| 1013 | Partition Array Into Three Parts With Equal Sum | Easy | 24 | Array, Greedy | LeetCode ↗ | |
| 2126 | Destroying Asteroids | Medium | 24 | Array, Greedy, Sorting | Solution · LeetCode ↗ | |
| 2680 | Maximum OR | Medium | 24 | Array, Greedy, Bit Manipulation, Prefix Sum | Solution · LeetCode ↗ | |
| 912 | Sort an Array | Medium | 24 | Array, Divide and Conquer, Sorting, Heap (Priority Queue), Merge Sort, Bucket Sort, Radix Sort, Counting Sort | Solution · LeetCode ↗ | |
| 860 | Lemonade Change | Easy | 24 | Array, Greedy | LeetCode ↗ | |
| 1665 | Minimum Initial Energy to Finish Tasks | Hard | 24 | Array, Greedy, Sorting | Solution · LeetCode ↗ |
4 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 146 | LRU Cache | Medium | 70 | Hash Table, Linked List, Design, Doubly-Linked List | Solution · LeetCode ↗ | |
| 208 | Implement Trie (Prefix Tree) | Medium | 38 | Hash Table, String, Design, Trie | Solution · LeetCode ↗ | |
| 460 | LFU Cache | Hard | 32 | Hash Table, Linked List, Design, Doubly-Linked List | Solution · LeetCode ↗ | |
| 380 | Insert Delete GetRandom O(1) | Medium | 24 | Array, Hash Table, Math, Design, Randomized | Solution · LeetCode ↗ |
1 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 1928 | Minimum Cost to Reach Destination in Time | Hard | 32 | Array, Dynamic Programming, Graph Theory, Dijkstra's Algorithm | Solution · LeetCode ↗ |
10 solved on the pattern page (step-by-step explanation and a step-through player), 30 Easy warm-ups that link to LeetCode.
12 solved on the pattern page (step-by-step explanation and a step-through player), 19 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 9 | Palindrome Number | Easy | 57 | Math | LeetCode ↗ | |
| 7 | Reverse Integer | Medium | 55 | Math | Solution · LeetCode ↗ | |
| 67 | Add Binary | Easy | 46 | Math, String, Bit Manipulation, Simulation | LeetCode ↗ | |
| 137 | Single Number II | Medium | 42 | Array, Bit Manipulation | Solution · LeetCode ↗ | |
| 204 | Count Primes | Medium | 42 | Array, Math, Enumeration, Number Theory, Primality Test, Sieve Theory, Prime Number Sieve | Solution · LeetCode ↗ | |
| 136 | Single Number | Easy | 42 | Array, Bit Manipulation | LeetCode ↗ | |
| 50 | Pow(x, n) | Medium | 38 | Math, Recursion | Solution · LeetCode ↗ | |
| 66 | Plus One | Easy | 38 | Array, Math | LeetCode ↗ | |
| 2571 | Minimum Operations to Reduce an Integer to 0 | Medium | 38 | Dynamic Programming, Greedy, Bit Manipulation | Solution · LeetCode ↗ | |
| 829 | Consecutive Numbers Sum | Hard | 38 | Math, Enumeration | Solution · LeetCode ↗ | |
| 1356 | Sort Integers by The Number of 1 Bits | Easy | 38 | Array, Bit Manipulation, Sorting, Counting | LeetCode ↗ | |
| 628 | Maximum Product of Three Numbers | Easy | 38 | Array, Math, Sorting | LeetCode ↗ | |
| 645 | Set Mismatch | Easy | 38 | Array, Hash Table, Bit Manipulation, Sorting | LeetCode ↗ | |
| 3754 | Concatenate Non-Zero Digits and Multiply by Sum I | Easy | 38 | Math | LeetCode ↗ | |
| 1979 | Find Greatest Common Divisor of Array | Easy | 32 | Array, Math, Number Theory, Euclidean Algorithm, Greatest Common Divisor | LeetCode ↗ | |
| 1071 | Greatest Common Divisor of Strings | Easy | 32 | Math, String, Euclidean Algorithm, Greatest Common Divisor | LeetCode ↗ | |
| 3345 | Smallest Divisible Digit Product I | Easy | 32 | Math, Enumeration | LeetCode ↗ | |
| 2235 | Add Two Integers | Easy | 24 | Math | LeetCode ↗ | |
| 168 | Excel Sheet Column Title | Easy | 24 | Math, String | LeetCode ↗ | |
| 371 | Sum of Two Integers | Medium | 24 | Math, Bit Manipulation | Solution · LeetCode ↗ | |
| 868 | Binary Gap | Easy | 24 | Bit Manipulation | LeetCode ↗ | |
| 504 | Base 7 | Easy | 24 | Math, String | LeetCode ↗ | |
| 405 | Convert a Number to Hexadecimal | Easy | 24 | Math, String, Bit Manipulation | LeetCode ↗ | |
| 1344 | Angle Between Hands of a Clock | Medium | 24 | Math | Solution · LeetCode ↗ | |
| 779 | K-th Symbol in Grammar | Medium | 24 | Math, Bit Manipulation, Recursion | Solution · LeetCode ↗ | |
| 1823 | Find the Winner of the Circular Game | Medium | 24 | Array, Math, Recursion, Queue, Simulation | Solution · LeetCode ↗ | |
| 223 | Rectangle Area | Medium | 24 | Math, Geometry | Solution · LeetCode ↗ | |
| 3513 | Number of Unique XOR Triplets I | Medium | 24 | Array, Math, Bit Manipulation | Solution · LeetCode ↗ | |
| 263 | Ugly Number | Easy | 24 | Math | LeetCode ↗ | |
| 190 | Reverse Bits | Easy | 24 | Divide and Conquer, Bit Manipulation | LeetCode ↗ | |
| 389 | Find the Difference | Easy | 24 | Hash Table, String, Bit Manipulation, Sorting | LeetCode ↗ |
5 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 721 | Accounts Merge | Medium | 38 | Array, Hash Table, String, Depth-First Search, Breadth-First Search, Union-Find, Sorting | Solution · LeetCode ↗ | |
| 827 | Making A Large Island | Hard | 24 | Array, Depth-First Search, Breadth-First Search, Union-Find, Matrix | Solution · LeetCode ↗ | |
| 1202 | Smallest String With Swaps | Medium | 24 | Array, Hash Table, String, Depth-First Search, Breadth-First Search, Union-Find, Sorting | Solution · LeetCode ↗ | |
| 684 | Redundant Connection | Medium | 24 | Depth-First Search, Breadth-First Search, Union-Find, Graph Theory | Solution · LeetCode ↗ | |
| 3532 | Path Existence Queries in a Graph I | Medium | 24 | Array, Hash Table, Binary Search, Union-Find, Graph Theory | Solution · LeetCode ↗ |
2 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 493 | Reverse Pairs | Hard | 38 | 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 | 32 | 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 |
|---|---|---|---|---|---|---|
| 570 | Managers with at Least 5 Direct Reports | Medium | 32 | Database | LeetCode ↗ | |
| 626 | Exchange Seats | Medium | 32 | Database | LeetCode ↗ | |
| 176 | Second Highest Salary | Medium | 32 | Database | LeetCode ↗ | |
| 180 | Consecutive Numbers | Medium | 32 | Database | LeetCode ↗ | |
| 1204 | Last Person to Fit in the Bus | Medium | 24 | Database | LeetCode ↗ | |
| 1193 | Monthly Transactions I | Medium | 24 | Database | LeetCode ↗ | |
| 178 | Rank Scores | Medium | 24 | Database | LeetCode ↗ |