All 377 problems from Meta's six-month LeetCode list (134 Easy, 202 Medium, 41 Hard), grouped by the pattern that solves them. 280 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 Meta 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 (15) 02 · Two Pointers (31) 03 · Sliding Window (17) 04 · Fast & Slow Pointers (10) 05 · LinkedList In-place Reversal (13) 21 · Array & String Basics (39) | 125 |
| Month 2 | Stacks, heaps, intervals, binary search | 06 · Monotonic Stack (10) 07 · Top 'K' Elements (8) 08 · Overlapping Intervals (3) 09 · Modified Binary Search (25) 17 · Stack (16) | 62 |
| Month 3 | Trees and graphs | 10 · Binary Tree Traversal (30) 11 · Depth-First Search (DFS) on Graphs (8) 12 · Breadth-First Search (BFS) (6) 13 · Matrix Traversal (16) 23 · Union-Find (Disjoint Set Union) (1) | 61 |
| Month 4 | Search and dynamic programming | 14 · Backtracking (18) 15 · Dynamic Programming Patterns (33) | 51 |
| Month 5 | Hashing, greedy, design, weighted graphs | 16 · Hash Map & Set (19) 18 · Greedy (15) 19 · Trie & Design (5) 20 · Shortest Path & MST (3) | 42 |
| Month 6 | Math, range structures, then mock interviews | 22 · Math & Bit Manipulation (25) 24 · Segment Tree & Fenwick Tree (1) | 26 |
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.
11 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 | 81 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 528 | Random Pick with Weight | Medium | 60 | Array, Math, Binary Search, Prefix Sum, Randomized | Solution · LeetCode ↗ | |
| 238 | Product of Array Except Self | Medium | 56 | Array, Prefix Sum | Solution · LeetCode ↗ | |
| 525 | Contiguous Array | Medium | 43 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 724 | Find Pivot Index | Easy | 43 | Array, Prefix Sum | LeetCode ↗ | |
| 1732 | Find the Highest Altitude | Easy | 39 | Array, Prefix Sum | LeetCode ↗ | |
| 974 | Subarray Sums Divisible by K | Medium | 39 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 1674 | Minimum Moves to Make Array Complementary | Medium | 33 | Array, Hash Table, Prefix Sum | Solution · LeetCode ↗ | |
| 2574 | Left and Right Sum Differences | Easy | 33 | Array, Prefix Sum | LeetCode ↗ | |
| 1480 | Running Sum of 1d Array | Easy | 33 | Array, Prefix Sum | LeetCode ↗ | |
| 825 | Friends Of Appropriate Ages | Medium | 24 | Array, Two Pointers, Binary Search, Sorting | Solution · LeetCode ↗ | |
| 3129 | Find All Possible Stable Binary Arrays I | Medium | 24 | Dynamic Programming, Prefix Sum | Solution · LeetCode ↗ | |
| 3737 | Count Subarrays With Majority Element I | Medium | 24 | Array, Hash Table, Divide and Conquer, Segment Tree, Merge Sort, Counting, Prefix Sum | Solution · LeetCode ↗ | |
| 303 | Range Sum Query - Immutable | Easy | 24 | Array, Design, Prefix Sum | Solution · LeetCode ↗ | |
| 1248 | Count Number of Nice Subarrays | Medium | 24 | Array, Hash Table, Math, Sliding Window, Prefix Sum | Solution · LeetCode ↗ |
22 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 |
|---|---|---|---|---|---|---|
| 26 | Remove Duplicates from Sorted Array | Easy | 76 | Array, Two Pointers | Solution · LeetCode ↗ | |
| 4 | Median of Two Sorted Arrays | Hard | 76 | Array, Binary Search, Divide and Conquer | Solution · LeetCode ↗ | |
| 125 | Valid Palindrome | Easy | 73 | Two Pointers, String | Solution · LeetCode ↗ | |
| 15 | 3Sum | Medium | 71 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 408 | Valid Word Abbreviation Premium | Easy | 71 | Two Pointers, String | LeetCode ↗ | |
| 31 | Next Permutation | Medium | 70 | Array, Two Pointers | Solution · LeetCode ↗ | |
| 5 | Longest Palindromic Substring | Medium | 67 | Two Pointers, String, Dynamic Programming, Manacher | Solution · LeetCode ↗ | |
| 88 | Merge Sorted Array | Easy | 67 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 283 | Move Zeroes | Easy | 66 | Array, Two Pointers | LeetCode ↗ | |
| 11 | Container With Most Water | Medium | 64 | Array, Two Pointers, Greedy | Solution · LeetCode ↗ | |
| 189 | Rotate Array | Medium | 58 | Array, Math, Two Pointers | Solution · LeetCode ↗ | |
| 680 | Valid Palindrome II | Easy | 58 | Two Pointers, String, Greedy | LeetCode ↗ | |
| 16 | 3Sum Closest | Medium | 56 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 42 | Trapping Rain Water | Hard | 56 | Array, Two Pointers, Dynamic Programming, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 167 | Two Sum II - Input Array Is Sorted | Medium | 56 | Array, Two Pointers, Binary Search | Solution · LeetCode ↗ | |
| 27 | Remove Element | Easy | 54 | Array, Two Pointers | LeetCode ↗ | |
| 18 | 4Sum | Medium | 51 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 1768 | Merge Strings Alternately | Easy | 47 | Two Pointers, String | Solution · LeetCode ↗ | |
| 977 | Squares of a Sorted Array | Easy | 43 | Array, Two Pointers, Sorting | Solution · LeetCode ↗ | |
| 75 | Sort Colors | Medium | 43 | Array, Two Pointers, Sorting, Quicksort, Bubble Sort | Solution · LeetCode ↗ | |
| 80 | Remove Duplicates from Sorted Array II | Medium | 33 | Array, Two Pointers | Solution · LeetCode ↗ | |
| 541 | Reverse String II | Easy | 33 | Two Pointers, String | LeetCode ↗ | |
| 653 | Two Sum IV - Input is a BST | Easy | 33 | Hash Table, Two Pointers, Tree, Depth-First Search, Breadth-First Search, Binary Search Tree, Binary Tree | LeetCode ↗ | |
| 3302 | Find the Lexicographically Smallest Valid Sequence | Medium | 33 | Two Pointers, String, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 443 | String Compression | Medium | 24 | Two Pointers, String | Solution · LeetCode ↗ | |
| 344 | Reverse String | Easy | 24 | Two Pointers, String | Solution · LeetCode ↗ | |
| 392 | Is Subsequence | Easy | 24 | Two Pointers, String, Dynamic Programming | Solution · LeetCode ↗ | |
| 3940 | Limit Occurrences in Sorted Array | Easy | 24 | Array, Two Pointers | LeetCode ↗ | |
| 2149 | Rearrange Array Elements by Sign | Medium | 24 | Array, Two Pointers, Simulation | Solution · LeetCode ↗ | |
| 345 | Reverse Vowels of a String | Easy | 24 | Two Pointers, String | LeetCode ↗ | |
| 455 | Assign Cookies | Easy | 24 | Array, Two Pointers, Greedy, Sorting, Quicksort | LeetCode ↗ |
16 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 |
|---|---|---|---|---|---|---|
| 121 | Best Time to Buy and Sell Stock | Easy | 84 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 3 | Longest Substring Without Repeating Characters | Medium | 76 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 1004 | Max Consecutive Ones III | Medium | 67 | Array, Binary Search, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 209 | Minimum Size Subarray Sum | Medium | 64 | Array, Binary Search, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 76 | Minimum Window Substring | Hard | 51 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 3090 | Maximum Length Substring With Two Occurrences | Easy | 47 | Hash Table, String, Sliding Window | LeetCode ↗ | |
| 567 | Permutation in String | Medium | 43 | Hash Table, Two Pointers, String, Sliding Window | Solution · LeetCode ↗ | |
| 239 | Sliding Window Maximum | Hard | 39 | Array, Queue, Sliding Window, Heap (Priority Queue), Monotonic Queue, Range Minimum/Maximum Query | Solution · LeetCode ↗ | |
| 438 | Find All Anagrams in a String | Medium | 39 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 424 | Longest Repeating Character Replacement | Medium | 33 | Hash Table, String, Sliding Window | Solution · LeetCode ↗ | |
| 643 | Maximum Average Subarray I | Easy | 33 | Array, Sliding Window | Solution · LeetCode ↗ | |
| 713 | Subarray Product Less Than K | Medium | 33 | Array, Binary Search, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 1888 | Minimum Number of Flips to Make the Binary String Alternating | Medium | 33 | String, Dynamic Programming, Sliding Window | Solution · LeetCode ↗ | |
| 904 | Fruit Into Baskets | Medium | 33 | Array, Hash Table, Sliding Window | Solution · LeetCode ↗ | |
| 219 | Contains Duplicate II | Easy | 24 | Array, Hash Table, Sliding Window | Solution · LeetCode ↗ | |
| 1456 | Maximum Number of Vowels in a Substring of Given Length | Medium | 24 | String, Sliding Window | Solution · LeetCode ↗ | |
| 1358 | Number of Substrings Containing All Three Characters | Medium | 24 | Hash Table, String, 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 | 51 | Linked List, Two Pointers, Stack, Recursion | Solution · LeetCode ↗ | |
| 141 | Linked List Cycle | Easy | 51 | Hash Table, Linked List, Two Pointers, Floyd's Cycle Finding Algorithm | Solution · LeetCode ↗ | |
| 19 | Remove Nth Node From End of List | Medium | 47 | Linked List, Two Pointers | Solution · LeetCode ↗ | |
| 876 | Middle of the Linked List | Easy | 47 | Linked List, Two Pointers | Solution · LeetCode ↗ | |
| 287 | Find the Duplicate Number | Medium | 47 | Array, Two Pointers, Binary Search, Bit Manipulation, Pigeonhole Principle, Floyd's Cycle Finding Algorithm | Solution · LeetCode ↗ | |
| 234 | Palindrome Linked List | Easy | 43 | Linked List, Two Pointers, Stack, Recursion | Solution · LeetCode ↗ | |
| 41 | First Missing Positive | Hard | 39 | Array, Hash Table | Solution · LeetCode ↗ | |
| 202 | Happy Number | Easy | 39 | Hash Table, Math, Two Pointers, Floyd's Cycle Finding Algorithm | Solution · LeetCode ↗ | |
| 148 | Sort List | Medium | 39 | Linked List, Two Pointers, Divide and Conquer, Sorting, Merge Sort | Solution · LeetCode ↗ | |
| 142 | Linked List Cycle II | Medium | 24 | Hash Table, Linked List, Two Pointers, Floyd's Cycle Finding Algorithm | Solution · LeetCode ↗ |
12 solved on the pattern page (step-by-step explanation and a step-through player), 1 Easy warm-ups that link to LeetCode.
9 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 | 47 | Array, Stack, Monotonic Stack, Range Minimum/Maximum Query | Solution · LeetCode ↗ | |
| 1762 | Buildings With an Ocean View Premium | Medium | 47 | Array, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 496 | Next Greater Element I | Easy | 43 | Array, Hash Table, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 739 | Daily Temperatures | Medium | 43 | Array, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 1475 | Final Prices With a Special Discount in a Shop | Easy | 33 | Array, Stack, Monotonic Stack | LeetCode ↗ | |
| 503 | Next Greater Element II | Medium | 24 | Array, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 402 | Remove K Digits | Medium | 24 | String, Stack, Greedy, Monotonic Stack | Solution · LeetCode ↗ | |
| 2104 | Sum of Subarray Ranges | Medium | 24 | Array, Stack, Monotonic Stack | Solution · LeetCode ↗ | |
| 901 | Online Stock Span | Medium | 24 | Stack, Design, Monotonic Stack, Data Stream | Solution · LeetCode ↗ | |
| 2454 | Next Greater Element IV | Hard | 24 | Array, Binary Search, Stack, Sorting, Heap (Priority Queue), Monotonic Stack | Solution · LeetCode ↗ |
8 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 215 | Kth Largest Element in an Array | Medium | 68 | Array, Divide and Conquer, Sorting, Heap (Priority Queue), Quickselect | Solution · LeetCode ↗ | |
| 23 | Merge k Sorted Lists | Hard | 51 | Linked List, Divide and Conquer, Heap (Priority Queue), Merge Sort, Tournament Sort | Solution · LeetCode ↗ | |
| 347 | Top K Frequent Elements | Medium | 51 | Array, Hash Table, Divide and Conquer, Sorting, Heap (Priority Queue), Bucket Sort, Counting, Quickselect | Solution · LeetCode ↗ | |
| 973 | K Closest Points to Origin | Medium | 47 | Array, Math, Divide and Conquer, Geometry, Sorting, Heap (Priority Queue), Quickselect, K-D Tree | Solution · LeetCode ↗ | |
| 451 | Sort Characters By Frequency | Medium | 43 | Hash Table, String, Sorting, Heap (Priority Queue), Bucket Sort, Counting | Solution · LeetCode ↗ | |
| 480 | Sliding Window Median | Hard | 33 | Array, Hash Table, Sliding Window, Heap (Priority Queue), Treap | Solution · LeetCode ↗ | |
| 373 | Find K Pairs with Smallest Sums | Medium | 24 | Array, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 767 | Reorganize String | Medium | 24 | Hash Table, String, Greedy, Sorting, Heap (Priority Queue), Counting | Solution · LeetCode ↗ |
3 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 56 | Merge Intervals | Medium | 67 | Array, Sorting, Quicksort | Solution · LeetCode ↗ | |
| 986 | Interval List Intersections | Medium | 33 | Array, Two Pointers, Sweep Line | Solution · LeetCode ↗ | |
| 253 | Meeting Rooms II Premium | Medium | 24 | Array, Two Pointers, Greedy, Sorting, Heap (Priority Queue), Prefix Sum | Solution · LeetCode ↗ |
17 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 |
|---|---|---|---|---|---|---|
| 162 | Find Peak Element | Medium | 62 | Array, Binary Search | Solution · LeetCode ↗ | |
| 33 | Search in Rotated Sorted Array | Medium | 60 | Array, Binary Search | Solution · LeetCode ↗ | |
| 34 | Find First and Last Position of Element in Sorted Array | Medium | 58 | Array, Binary Search | Solution · LeetCode ↗ | |
| 1539 | Kth Missing Positive Number | Easy | 58 | Array, Binary Search | LeetCode ↗ | |
| 875 | Koko Eating Bananas | Medium | 58 | Array, Binary Search | Solution · LeetCode ↗ | |
| 35 | Search Insert Position | Easy | 56 | Array, Binary Search | Solution · LeetCode ↗ | |
| 349 | Intersection of Two Arrays | Easy | 56 | Array, Hash Table, Two Pointers, Binary Search, Sorting | LeetCode ↗ | |
| 704 | Binary Search | Easy | 51 | Array, Binary Search | Solution · LeetCode ↗ | |
| 540 | Single Element in a Sorted Array | Medium | 47 | Array, Binary Search | Solution · LeetCode ↗ | |
| 240 | Search a 2D Matrix II | Medium | 43 | Array, Binary Search, Divide and Conquer, Matrix | Solution · LeetCode ↗ | |
| 69 | Sqrt(x) | Easy | 39 | Math, Binary Search, Newton's Method | LeetCode ↗ | |
| 1283 | Find the Smallest Divisor Given a Threshold | Medium | 39 | Array, Binary Search | Solution · LeetCode ↗ | |
| 74 | Search a 2D Matrix | Medium | 33 | Array, Binary Search, Matrix | Solution · LeetCode ↗ | |
| 153 | Find Minimum in Rotated Sorted Array | Medium | 33 | Array, Binary Search | Solution · LeetCode ↗ | |
| 270 | Closest Binary Search Tree Value Premium | Easy | 24 | Binary Search, Tree, Depth-First Search, Binary Search Tree, Binary Tree | LeetCode ↗ | |
| 278 | First Bad Version | Easy | 24 | Binary Search, Interactive | Solution · LeetCode ↗ | |
| 441 | Arranging Coins | Easy | 24 | Math, Binary Search | LeetCode ↗ | |
| 1351 | Count Negative Numbers in a Sorted Matrix | Easy | 24 | Array, Binary Search, Matrix | LeetCode ↗ | |
| 3932 | Count K-th Roots in a Range | Medium | 24 | Math, Binary Search | Solution · LeetCode ↗ | |
| 1608 | Special Array With X Elements Greater Than or Equal X | Easy | 24 | Array, Binary Search, Sorting | LeetCode ↗ | |
| 2035 | Partition Array Into Two Arrays to Minimize Sum Difference | Hard | 24 | Array, Two Pointers, Binary Search, Dynamic Programming, Bit Manipulation, Meet in the Middle, Sorting, Ordered Set, Bitmask | Solution · LeetCode ↗ | |
| 410 | Split Array Largest Sum | Hard | 24 | Array, Binary Search, Dynamic Programming, Greedy, Prefix Sum | Solution · LeetCode ↗ | |
| 1011 | Capacity To Ship Packages Within D Days | Medium | 24 | Array, Binary Search | Solution · LeetCode ↗ | |
| 1901 | Find a Peak Element II | Medium | 24 | Array, Binary Search, Matrix | Solution · LeetCode ↗ | |
| 268 | Missing Number | Easy | 24 | Array, Hash Table, Math, Binary Search, Bit Manipulation, Sorting | LeetCode ↗ |
27 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 |
|---|---|---|---|---|---|---|
| 543 | Diameter of Binary Tree | Easy | 64 | Tree, Depth-First Search, Binary Tree, DP on Trees | Solution · LeetCode ↗ | |
| 199 | Binary Tree Right Side View | Medium | 62 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 314 | Binary Tree Vertical Order Traversal Premium | Medium | 60 | Hash Table, Tree, Depth-First Search, Breadth-First Search, Sorting, Binary Tree | Solution · LeetCode ↗ | |
| 236 | Lowest Common Ancestor of a Binary Tree | Medium | 56 | Tree, Depth-First Search, Binary Tree, Binary Lifting, Lowest Common Ancestor | Solution · LeetCode ↗ | |
| 1650 | Lowest Common Ancestor of a Binary Tree III Premium | Medium | 54 | Hash Table, Two Pointers, Tree, Binary Tree, Binary Lifting, Lowest Common Ancestor | Solution · LeetCode ↗ | |
| 938 | Range Sum of BST | Easy | 51 | Tree, Depth-First Search, Binary Search Tree, Binary Tree | LeetCode ↗ | |
| 101 | Symmetric Tree | Easy | 47 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 108 | Convert Sorted Array to Binary Search Tree | Easy | 47 | Array, Divide and Conquer, Tree, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 124 | Binary Tree Maximum Path Sum | Hard | 43 | Dynamic Programming, Tree, Depth-First Search, Binary Tree, DP on Trees | Solution · LeetCode ↗ | |
| 987 | Vertical Order Traversal of a Binary Tree | Hard | 43 | Hash Table, Tree, Depth-First Search, Breadth-First Search, Sorting, Binary Tree | Solution · LeetCode ↗ | |
| 110 | Balanced Binary Tree | Easy | 43 | Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 100 | Same Tree | Easy | 43 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 545 | Boundary of Binary Tree Premium | Medium | 39 | Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 98 | Validate Binary Search Tree | Medium | 33 | Tree, Depth-First Search, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 104 | Maximum Depth of Binary Tree | Easy | 33 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 226 | Invert Binary Tree | Easy | 33 | Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 549 | Binary Tree Longest Consecutive Sequence II Premium | Medium | 33 | Tree, Depth-First Search, Binary Tree, DP on Trees | Solution · LeetCode ↗ | |
| 173 | Binary Search Tree Iterator | Medium | 33 | Stack, Tree, Design, Binary Search Tree, Binary Tree, Iterator | Solution · LeetCode ↗ | |
| 94 | Binary Tree Inorder Traversal | Easy | 33 | Stack, Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 297 | Serialize and Deserialize Binary Tree | Hard | 33 | String, Tree, Depth-First Search, Breadth-First Search, Design, Binary Tree | Solution · LeetCode ↗ | |
| 2265 | Count Nodes Equal to Average of Subtree | Medium | 24 | Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 1382 | Balance a Binary Search Tree | Medium | 24 | Divide and Conquer, Greedy, Tree, Depth-First Search, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 114 | Flatten Binary Tree to Linked List | Medium | 24 | Linked List, Stack, Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 230 | Kth Smallest Element in a BST | Medium | 24 | Tree, Depth-First Search, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 113 | Path Sum II | Medium | 24 | Backtracking, Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 700 | Search in a Binary Search Tree | Easy | 24 | Tree, Binary Search Tree, Binary Tree | LeetCode ↗ | |
| 95 | Unique Binary Search Trees II | Medium | 24 | Dynamic Programming, Backtracking, Tree, Binary Search Tree, Binary Tree | Solution · LeetCode ↗ | |
| 102 | Binary Tree Level Order Traversal | Medium | 24 | Tree, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 103 | Binary Tree Zigzag Level Order Traversal | Medium | 24 | Tree, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 783 | Minimum Distance Between BST Nodes | Easy | 24 | Tree, Depth-First Search, Breadth-First Search, Binary Search Tree, Binary Tree | LeetCode ↗ |
8 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 339 | Nested List Weight Sum Premium | Medium | 58 | Depth-First Search, Breadth-First Search | Solution · LeetCode ↗ | |
| 129 | Sum Root to Leaf Numbers | Medium | 54 | Tree, Depth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 207 | Course Schedule | Medium | 54 | Depth-First Search, Breadth-First Search, Graph Theory, Topological Sort, Directed Acyclic Graph | Solution · LeetCode ↗ | |
| 1971 | Find if Path Exists in Graph | Easy | 39 | Depth-First Search, Breadth-First Search, Union-Find, Graph Theory | Solution · LeetCode ↗ | |
| 133 | Clone Graph | Medium | 24 | Hash Table, Depth-First Search, Breadth-First Search, Graph Theory | Solution · LeetCode ↗ | |
| 1466 | Reorder Routes to Make All Paths Lead to the City Zero | Medium | 24 | Depth-First Search, Breadth-First Search, Graph Theory | Solution · LeetCode ↗ | |
| 547 | Number of Provinces | Medium | 24 | Depth-First Search, Breadth-First Search, Union-Find, Graph Theory | Solution · LeetCode ↗ | |
| 841 | Keys and Rooms | Medium | 24 | Depth-First Search, Breadth-First Search, Graph Theory | Solution · LeetCode ↗ |
6 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 863 | All Nodes Distance K in Binary Tree | Medium | 47 | Hash Table, Tree, Depth-First Search, Breadth-First Search, Binary Tree | Solution · LeetCode ↗ | |
| 1091 | Shortest Path in Binary Matrix | Medium | 47 | Array, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 994 | Rotting Oranges | Medium | 39 | Array, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 127 | Word Ladder | Hard | 33 | Hash Table, String, Breadth-First Search, Bidirectional Search | Solution · LeetCode ↗ | |
| 286 | Walls and Gates Premium | Medium | 24 | Array, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 1926 | Nearest Exit from Entrance in Maze | Medium | 24 | Array, Breadth-First Search, Matrix | Solution · LeetCode ↗ |
14 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 |
|---|---|---|---|---|---|---|
| 73 | Set Matrix Zeroes | Medium | 62 | Array, Hash Table, Matrix | Solution · LeetCode ↗ | |
| 200 | Number of Islands | Medium | 62 | Array, Depth-First Search, Breadth-First Search, Union-Find, Matrix | Solution · LeetCode ↗ | |
| 48 | Rotate Image | Medium | 47 | Array, Math, Matrix | Solution · LeetCode ↗ | |
| 54 | Spiral Matrix | Medium | 43 | Array, Matrix, Simulation | Solution · LeetCode ↗ | |
| 130 | Surrounded Regions | Medium | 43 | Array, Depth-First Search, Breadth-First Search, Union-Find, Matrix | Solution · LeetCode ↗ | |
| 498 | Diagonal Traverse | Medium | 39 | Array, Matrix, Simulation | Solution · LeetCode ↗ | |
| 778 | Swim in Rising Water | Hard | 39 | Array, Binary Search, Depth-First Search, Breadth-First Search, Union-Find, Minimax, Heap (Priority Queue), Matrix, Dijkstra's Algorithm | Solution · LeetCode ↗ | |
| 419 | Battleships in a Board | Medium | 33 | Array, Depth-First Search, Matrix | Solution · LeetCode ↗ | |
| 529 | Minesweeper | Medium | 33 | Array, Depth-First Search, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 695 | Max Area of Island | Medium | 24 | Array, Depth-First Search, Breadth-First Search, Union-Find, Matrix | Solution · LeetCode ↗ | |
| 1424 | Diagonal Traverse II | Medium | 24 | Array, Sorting, Heap (Priority Queue) | Solution · LeetCode ↗ | |
| 733 | Flood Fill | Easy | 24 | Array, Depth-First Search, Breadth-First Search, Matrix | Solution · LeetCode ↗ | |
| 1914 | Cyclically Rotating a Grid | Medium | 24 | Array, Matrix, Simulation | Solution · LeetCode ↗ | |
| 289 | Game of Life | Medium | 24 | Array, Matrix, Simulation | Solution · LeetCode ↗ | |
| 766 | Toeplitz Matrix | Easy | 24 | Array, Matrix | LeetCode ↗ | |
| 867 | Transpose Matrix | Easy | 24 | Array, Matrix, Simulation | LeetCode ↗ |
18 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 39 | Combination Sum | Medium | 58 | Array, Backtracking | Solution · LeetCode ↗ | |
| 51 | N-Queens | Hard | 56 | Array, Backtracking, Algorithm X | Solution · LeetCode ↗ | |
| 22 | Generate Parentheses | Medium | 51 | String, Dynamic Programming, Backtracking, Bracket Sequences | Solution · LeetCode ↗ | |
| 77 | Combinations | Medium | 51 | Backtracking | Solution · LeetCode ↗ | |
| 17 | Letter Combinations of a Phone Number | Medium | 47 | Hash Table, String, Backtracking | Solution · LeetCode ↗ | |
| 131 | Palindrome Partitioning | Medium | 47 | String, Dynamic Programming, Backtracking | Solution · LeetCode ↗ | |
| 46 | Permutations | Medium | 43 | Array, Backtracking | Solution · LeetCode ↗ | |
| 78 | Subsets | Medium | 43 | Array, Backtracking, Bit Manipulation | Solution · LeetCode ↗ | |
| 489 | Robot Room Cleaner Premium | Hard | 43 | Backtracking, Interactive | Solution · LeetCode ↗ | |
| 90 | Subsets II | Medium | 39 | Array, Backtracking, Bit Manipulation | Solution · LeetCode ↗ | |
| 79 | Word Search | Medium | 33 | Array, String, Backtracking, Depth-First Search, Matrix | Solution · LeetCode ↗ | |
| 1239 | Maximum Length of a Concatenated String with Unique Characters | Medium | 33 | Array, String, Backtracking, Bit Manipulation | Solution · LeetCode ↗ | |
| 212 | Word Search II | Hard | 24 | Array, String, Backtracking, Trie, Matrix | Solution · LeetCode ↗ | |
| 301 | Remove Invalid Parentheses | Hard | 24 | String, Backtracking, Breadth-First Search | Solution · LeetCode ↗ | |
| 1291 | Sequential Digits | Medium | 24 | Enumeration | Solution · LeetCode ↗ | |
| 60 | Permutation Sequence | Hard | 24 | Math, Recursion | Solution · LeetCode ↗ | |
| 980 | Unique Paths III | Hard | 24 | Array, Backtracking, Bit Manipulation, Matrix, Hamiltonian Path | Solution · LeetCode ↗ | |
| 3348 | Smallest Divisible Digit Product II | Hard | 24 | Math, String, Backtracking, Greedy, Number Theory | Solution · LeetCode ↗ |
32 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 | 64 | Array, Divide and Conquer, Dynamic Programming | Solution · LeetCode ↗ | |
| 322 | Coin Change | Medium | 62 | Array, Dynamic Programming, Breadth-First Search, Knapsack Problem, Complete Knapsack | Solution · LeetCode ↗ | |
| 32 | Longest Valid Parentheses | Hard | 56 | String, Dynamic Programming, Stack, Bracket Sequences | Solution · LeetCode ↗ | |
| 647 | Palindromic Substrings | Medium | 54 | Two Pointers, String, Dynamic Programming | Solution · LeetCode ↗ | |
| 509 | Fibonacci Number | Easy | 54 | Math, Dynamic Programming, Recursion, Memoization | Solution · LeetCode ↗ | |
| 198 | House Robber | Medium | 47 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 343 | Integer Break | Medium | 47 | Math, Dynamic Programming | Solution · LeetCode ↗ | |
| 62 | Unique Paths | Medium | 43 | Math, Dynamic Programming, Combinatorics | Solution · LeetCode ↗ | |
| 70 | Climbing Stairs | Easy | 43 | Math, Dynamic Programming, Memoization | Solution · LeetCode ↗ | |
| 152 | Maximum Product Subarray | Medium | 43 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 118 | Pascal's Triangle | Easy | 39 | Array, Dynamic Programming | LeetCode ↗ | |
| 123 | Best Time to Buy and Sell Stock III | Hard | 39 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 1143 | Longest Common Subsequence | Medium | 39 | String, Dynamic Programming, Longest Common Subsequence | Solution · LeetCode ↗ | |
| 72 | Edit Distance | Medium | 39 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 312 | Burst Balloons | Hard | 39 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 3336 | Find the Number of Subsequences With Equal GCD | Hard | 39 | Array, Math, Dynamic Programming, Number Theory, Euclidean Algorithm, Greatest Common Divisor | Solution · LeetCode ↗ | |
| 10 | Regular Expression Matching | Hard | 33 | String, Dynamic Programming, Recursion | Solution · LeetCode ↗ | |
| 746 | Min Cost Climbing Stairs | Easy | 33 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 1871 | Jump Game VII | Medium | 33 | String, Dynamic Programming, Sliding Window, Prefix Sum | Solution · LeetCode ↗ | |
| 120 | Triangle | Medium | 33 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 877 | Stone Game | Medium | 33 | Array, Math, Dynamic Programming, Minimax, Game Theory, Zero-Sum Game | Solution · LeetCode ↗ | |
| 416 | Partition Equal Subset Sum | Medium | 24 | Array, Dynamic Programming, Knapsack Problem, 0-1 Knapsack | Solution · LeetCode ↗ | |
| 300 | Longest Increasing Subsequence | Medium | 24 | Array, Binary Search, Dynamic Programming, Longest Increasing Subsequence | Solution · LeetCode ↗ | |
| 396 | Rotate Function | Medium | 24 | Array, Math, Dynamic Programming | Solution · LeetCode ↗ | |
| 918 | Maximum Sum Circular Subarray | Medium | 24 | Array, Divide and Conquer, Dynamic Programming, Queue, Monotonic Queue | Solution · LeetCode ↗ | |
| 516 | Longest Palindromic Subsequence | Medium | 24 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 139 | Word Break | Medium | 24 | Array, Hash Table, String, Dynamic Programming, Trie, Memoization, Brute-Force Search | Solution · LeetCode ↗ | |
| 115 | Distinct Subsequences | Hard | 24 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 91 | Decode Ways | Medium | 24 | String, Dynamic Programming | Solution · LeetCode ↗ | |
| 279 | Perfect Squares | Medium | 24 | Math, Dynamic Programming, Breadth-First Search, Knapsack Problem, Complete Knapsack | Solution · LeetCode ↗ | |
| 213 | House Robber II | Medium | 24 | Array, Dynamic Programming | Solution · LeetCode ↗ | |
| 486 | Predict the Winner | Medium | 24 | Array, Math, Dynamic Programming, Recursion, Minimax, Game Theory, Zero-Sum Game | Solution · LeetCode ↗ | |
| 357 | Count Numbers with Unique Digits | Medium | 24 | Math, Dynamic Programming, Backtracking | Solution · LeetCode ↗ |
16 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 ↗ | |
| 49 | Group Anagrams | Medium | 60 | Array, Hash Table, String, Sorting | Solution · LeetCode ↗ | |
| 242 | Valid Anagram | Easy | 60 | Hash Table, String, Sorting | Solution · LeetCode ↗ | |
| 128 | Longest Consecutive Sequence | Medium | 58 | Array, Hash Table, Union-Find | Solution · LeetCode ↗ | |
| 169 | Majority Element | Easy | 56 | Array, Hash Table, Divide and Conquer, Sorting, Counting, Boyer–Moore Majority Vote Algorithm | Solution · LeetCode ↗ | |
| 217 | Contains Duplicate | Easy | 54 | Array, Hash Table, Sorting | Solution · LeetCode ↗ | |
| 249 | Group Shifted Strings Premium | Medium | 39 | Array, Hash Table, String | Solution · LeetCode ↗ | |
| 3761 | Minimum Absolute Distance Between Mirror Pairs | Medium | 39 | Array, Hash Table, Math | Solution · LeetCode ↗ | |
| 387 | First Unique Character in a String | Easy | 39 | Hash Table, String, Queue, Counting | LeetCode ↗ | |
| 791 | Custom Sort String | Medium | 33 | Hash Table, String, Sorting | Solution · LeetCode ↗ | |
| 229 | Majority Element II | Medium | 33 | Array, Hash Table, Sorting, Counting, Boyer–Moore Majority Vote Algorithm | Solution · LeetCode ↗ | |
| 36 | Valid Sudoku | Medium | 33 | Array, Hash Table, Matrix | Solution · LeetCode ↗ | |
| 3020 | Find the Maximum Number of Elements in Subset | Medium | 33 | Array, Hash Table, Enumeration | Solution · LeetCode ↗ | |
| 1570 | Dot Product of Two Sparse Vectors Premium | Medium | 24 | Array, Hash Table, Two Pointers, Design, Linear Algebra | Solution · LeetCode ↗ | |
| 205 | Isomorphic Strings | Easy | 24 | Hash Table, String | Solution · LeetCode ↗ | |
| 1796 | Second Largest Digit in a String | Easy | 24 | Hash Table, String | LeetCode ↗ | |
| 3960 | Frequency Balance Subarray | Medium | 24 | Solution · LeetCode ↗ | ||
| 1394 | Find Lucky Integer in an Array | Easy | 24 | Array, Hash Table, Counting | LeetCode ↗ | |
| 383 | Ransom Note | Easy | 24 | Hash Table, String, Counting | Solution · LeetCode ↗ |
14 solved on the pattern page (step-by-step explanation and a step-through player), 2 Easy warm-ups that link to LeetCode.
9 solved on the pattern page (step-by-step explanation and a step-through player), 6 Easy warm-ups that link to LeetCode.
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 55 | Jump Game | Medium | 56 | Array, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 122 | Best Time to Buy and Sell Stock II | Medium | 51 | Array, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 912 | Sort an Array | Medium | 47 | Array, Divide and Conquer, Sorting, Heap (Priority Queue), Merge Sort, Bucket Sort, Radix Sort, Counting Sort | Solution · LeetCode ↗ | |
| 605 | Can Place Flowers | Easy | 39 | Array, Greedy | LeetCode ↗ | |
| 45 | Jump Game II | Medium | 33 | Array, Dynamic Programming, Greedy | Solution · LeetCode ↗ | |
| 1840 | Maximum Building Height | Hard | 33 | Array, Math, Sorting | Solution · LeetCode ↗ | |
| 179 | Largest Number | Medium | 33 | Array, String, Greedy, Sorting | Solution · LeetCode ↗ | |
| 3499 | Maximize Active Section with Trade I | Medium | 33 | String, Enumeration | Solution · LeetCode ↗ | |
| 164 | Maximum Gap | Medium | 24 | Array, Sorting, Bucket Sort, Radix Sort, Pigeonhole Principle | Solution · LeetCode ↗ | |
| 1365 | How Many Numbers Are Smaller Than the Current Number | Easy | 24 | Array, Hash Table, Sorting, Counting Sort | LeetCode ↗ | |
| 3689 | Maximum Total Subarray Value I | Medium | 24 | Array, Greedy | Solution · LeetCode ↗ | |
| 1331 | Rank Transform of an Array | Easy | 24 | Array, Hash Table, Sorting | LeetCode ↗ | |
| 860 | Lemonade Change | Easy | 24 | Array, Greedy | LeetCode ↗ | |
| 3731 | Find Missing Elements | Easy | 24 | Array, Hash Table, Sorting | LeetCode ↗ | |
| 1502 | Can Make Arithmetic Progression From Sequence | Easy | 24 | Array, Sorting | LeetCode ↗ |
4 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 |
|---|---|---|---|---|---|---|
| 146 | LRU Cache | Medium | 58 | Hash Table, Linked List, Design, Doubly-Linked List | Solution · LeetCode ↗ | |
| 346 | Moving Average from Data Stream Premium | Easy | 33 | Array, Design, Queue, Data Stream | LeetCode ↗ | |
| 208 | Implement Trie (Prefix Tree) | Medium | 33 | Hash Table, String, Design, Trie | Solution · LeetCode ↗ | |
| 381 | Insert Delete GetRandom O(1) - Duplicates allowed | Hard | 24 | Array, Hash Table, Math, Design, Randomized | Solution · LeetCode ↗ | |
| 432 | All O`one Data Structure | Hard | 24 | Hash Table, Linked List, Design, Doubly-Linked List | Solution · LeetCode ↗ |
3 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 2812 | Find the Safest Path in a Grid | Medium | 33 | Array, Binary Search, Breadth-First Search, Union-Find, Heap (Priority Queue), Matrix | Solution · LeetCode ↗ | |
| 787 | Cheapest Flights Within K Stops | Medium | 33 | Dynamic Programming, Depth-First Search, Breadth-First Search, Graph Theory, Heap (Priority Queue), Shortest Path | Solution · LeetCode ↗ | |
| 4003 | Minimum Cost Path with Alternating Directions III | Hard | 24 | Solution · LeetCode ↗ |
12 solved on the pattern page (step-by-step explanation and a step-through player), 27 Easy warm-ups that link to LeetCode.
7 solved on the pattern page (step-by-step explanation and a step-through player), 18 Easy warm-ups that link to LeetCode.
1 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 827 | Making A Large Island | Hard | 47 | Array, Depth-First Search, Breadth-First Search, Union-Find, Matrix | Solution · LeetCode ↗ |
1 solved on the pattern page (step-by-step explanation and a step-through player).
| Done | # | Problem | Level | Frequency | Topics | Links |
|---|---|---|---|---|---|---|
| 493 | Reverse Pairs | Hard | 24 | Array, Binary Search, Divide and Conquer, Binary Indexed Tree, Segment Tree, Merge Sort, Ordered Set, Treap | 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 |
|---|---|---|---|---|---|---|
| 1193 | Monthly Transactions I | Medium | 43 | Database | LeetCode ↗ | |
| 585 | Investments in 2016 | Medium | 39 | Database | LeetCode ↗ | |
| 1045 | Customers Who Bought All Products | Medium | 33 | Database | LeetCode ↗ | |
| 1164 | Product Price at a Given Date | Medium | 33 | Database | LeetCode ↗ | |
| 176 | Second Highest Salary | Medium | 33 | Database | LeetCode ↗ | |
| 180 | Consecutive Numbers | Medium | 33 | Database | LeetCode ↗ | |
| 177 | Nth Highest Salary | Medium | 24 | Database | LeetCode ↗ | |
| 1174 | Immediate Food Delivery II | Medium | 24 | Database | LeetCode ↗ | |
| 1204 | Last Person to Fit in the Bus | Medium | 24 | Database | LeetCode ↗ | |
| 185 | Department Top Three Salaries | Hard | 24 | Database | LeetCode ↗ |