The NeetCode 150 is a hand-picked set of 150 LeetCode problems on neetcode.io, grouped into 18 pattern categories instead of being sorted by difficulty. The split is 28 easy, 101 medium and 21 hard, and most people finish in 6 to 10 weeks at 15–20 problems a week plus re-solves. Work the categories in the order NeetCode lists them — arrays and hashing, two pointers, sliding window, binary search, linked list, stack, trees, tries, backtracking, heap, graphs, advanced graphs, 1-D and 2-D dynamic programming, greedy, intervals, bit manipulation, then math and geometry — because each one sets up the next. If you have under three weeks, do the leaner NeetCode 75 instead. The full list of all 150 problems is below, grouped by category.
If you've decided to grind LeetCode for interviews, the hardest part isn't solving problems — it's knowing which problems to solve and in what order. The NeetCode 150 answers both. It's one of the most popular curated lists precisely because it's organized around patterns, not random difficulty. This is a practical roadmap for working through the NeetCode 150 (and its leaner sibling, the NeetCode 75) so the repetition actually compounds.
What the NeetCode 150 actually is
The NeetCode 150 is a hand-picked set of 150 LeetCode problems grouped into 18 categories that map to the patterns interviewers reuse. Instead of a flat list sorted by difficulty, you get buckets: arrays and hashing, two pointers, sliding window, stacks, binary search, linked lists, trees, tries, heaps, backtracking, graphs, dynamic programming, greedy, intervals, and a few more. Each bucket has enough problems to make the pattern stick without being exhaustive.
The design philosophy is simple: you don't memorize 150 solutions, you internalize ~18 patterns. Once a pattern clicks, most problems inside that bucket start to feel like variations on one idea — which is exactly what you want when a new problem lands in a real interview.
NeetCode 75 vs NeetCode 150
There are two versions, and picking the right one matters:
| List | Size | Best for |
|---|---|---|
| NeetCode 75 | 75 problems | Tight timelines; one representative problem per pattern |
| NeetCode 150 | 150 problems | Deeper reps, more edge cases, fuller coverage |
The NeetCode 75 is a streamlined subset — the minimum problems needed to touch every major pattern. It's ideal if you have two or three weeks. The NeetCode 150 keeps the same structure but adds more problems per category so each pattern gets reinforced from several angles. A common approach: do the 75 first to cover the map, then fill in the rest of the 150 where you feel shaky.
How the list is organized by pattern
The category order isn't arbitrary — it's roughly ascending in conceptual dependency, so earlier patterns set up later ones. A representative flow looks like this:
- Arrays & Hashing — the foundation; hash maps show up everywhere.
- Two Pointers — see our deep dive on the two pointers pattern.
- Sliding Window — a natural extension of two pointers.
- Stack — parsing, monotonic stacks, and validity checks.
- Binary Search — on arrays and on answer spaces.
- Linked List — pointer manipulation and cycle detection.
- Trees — traversal, recursion, and BFS/DFS.
- Tries & Heaps — prefix problems and top-k / priority queues.
- Backtracking — combinations, permutations, and subsets.
- Graphs — traversal, topological sort, union-find.
- Dynamic Programming — 1-D, then 2-D; the steepest curve.
- Greedy, Intervals & Math — the finishing categories.
The whole point is transfer: if you truly own the sliding-window bucket, a brand-new sliding-window problem in an interview is no longer novel — it's familiar.
The full NeetCode 150 list
All 150 problems, in the 18 categories NeetCode groups them into — 28 easy, 101 medium and 21 hard. Work the categories top to bottom: the order is roughly ascending in dependency, so each one sets up the next. Checked against neetcode.io in October 2026.
Arrays & Hashing (9)
| Problem | Difficulty |
|---|---|
| Contains Duplicate | Easy |
| Valid Anagram | Easy |
| Two Sum | Easy |
| Group Anagrams | Medium |
| Top K Frequent Elements | Medium |
| Encode and Decode Strings | Medium |
| Product of Array Except Self | Medium |
| Valid Sudoku | Medium |
| Longest Consecutive Sequence | Medium |
Two Pointers (5)
| Problem | Difficulty |
|---|---|
| Valid Palindrome | Easy |
| Two Sum II Input Array Is Sorted | Medium |
| 3Sum | Medium |
| Container With Most Water | Medium |
| Trapping Rain Water | Hard |
Sliding Window (6)
| Problem | Difficulty |
|---|---|
| Best Time to Buy And Sell Stock | Easy |
| Longest Substring Without Repeating Characters | Medium |
| Longest Repeating Character Replacement | Medium |
| Permutation In String | Medium |
| Minimum Window Substring | Hard |
| Sliding Window Maximum | Hard |
Binary Search (7)
| Problem | Difficulty |
|---|---|
| Binary Search | Easy |
| Search a 2D Matrix | Medium |
| Koko Eating Bananas | Medium |
| Find Minimum In Rotated Sorted Array | Medium |
| Search In Rotated Sorted Array | Medium |
| Time Based Key Value Store | Medium |
| Median of Two Sorted Arrays | Hard |
Linked List (11)
| Problem | Difficulty |
|---|---|
| Reverse Linked List | Easy |
| Merge Two Sorted Lists | Easy |
| Linked List Cycle | Easy |
| Reorder List | Medium |
| Remove Nth Node From End of List | Medium |
| Copy List With Random Pointer | Medium |
| Add Two Numbers | Medium |
| Find The Duplicate Number | Medium |
| LRU Cache | Medium |
| Merge K Sorted Lists | Hard |
| Reverse Nodes In K Group | Hard |
Stack (6)
| Problem | Difficulty |
|---|---|
| Valid Parentheses | Easy |
| Min Stack | Medium |
| Evaluate Reverse Polish Notation | Medium |
| Daily Temperatures | Medium |
| Car Fleet | Medium |
| Largest Rectangle In Histogram | Hard |
Trees (15)
| Problem | Difficulty |
|---|---|
| Invert Binary Tree | Easy |
| Maximum Depth of Binary Tree | Easy |
| Diameter of Binary Tree | Easy |
| Balanced Binary Tree | Easy |
| Same Tree | Easy |
| Subtree of Another Tree | Easy |
| Lowest Common Ancestor of a Binary Search Tree | Medium |
| Binary Tree Level Order Traversal | Medium |
| Binary Tree Right Side View | Medium |
| Count Good Nodes In Binary Tree | Medium |
| Validate Binary Search Tree | Medium |
| Kth Smallest Element In a Bst | Medium |
| Construct Binary Tree From Preorder And Inorder Traversal | Medium |
| Binary Tree Maximum Path Sum | Hard |
| Serialize And Deserialize Binary Tree | Hard |
Tries (3)
| Problem | Difficulty |
|---|---|
| Implement Trie Prefix Tree | Medium |
| Design Add And Search Words Data Structure | Medium |
| Word Search II | Hard |
Backtracking (10)
| Problem | Difficulty |
|---|---|
| Subsets | Medium |
| Combination Sum | Medium |
| Combination Sum II | Medium |
| Permutations | Medium |
| Subsets II | Medium |
| Generate Parentheses | Medium |
| Word Search | Medium |
| Palindrome Partitioning | Medium |
| Letter Combinations of a Phone Number | Medium |
| N Queens | Hard |
Heap / Priority Queue (7)
| Problem | Difficulty |
|---|---|
| Kth Largest Element In a Stream | Easy |
| Last Stone Weight | Easy |
| K Closest Points to Origin | Medium |
| Kth Largest Element In An Array | Medium |
| Task Scheduler | Medium |
| Design Twitter | Medium |
| Find Median From Data Stream | Hard |
Graphs (13)
| Problem | Difficulty |
|---|---|
| Number of Islands | Medium |
| Max Area of Island | Medium |
| Clone Graph | Medium |
| Walls And Gates | Medium |
| Rotting Oranges | Medium |
| Pacific Atlantic Water Flow | Medium |
| Surrounded Regions | Medium |
| Course Schedule | Medium |
| Course Schedule II | Medium |
| Graph Valid Tree | Medium |
| Number of Connected Components In An Undirected Graph | Medium |
| Redundant Connection | Medium |
| Word Ladder | Hard |
Advanced Graphs (6)
| Problem | Difficulty |
|---|---|
| Network Delay Time | Medium |
| Reconstruct Itinerary | Hard |
| Min Cost to Connect All Points | Medium |
| Swim In Rising Water | Hard |
| Alien Dictionary | Hard |
| Cheapest Flights Within K Stops | Medium |
1-D Dynamic Programming (12)
| Problem | Difficulty |
|---|---|
| Climbing Stairs | Easy |
| Min Cost Climbing Stairs | Easy |
| House Robber | Medium |
| House Robber II | Medium |
| Longest Palindromic Substring | Medium |
| Palindromic Substrings | Medium |
| Decode Ways | Medium |
| Coin Change | Medium |
| Maximum Product Subarray | Medium |
| Word Break | Medium |
| Longest Increasing Subsequence | Medium |
| Partition Equal Subset Sum | Medium |
2-D Dynamic Programming (11)
| Problem | Difficulty |
|---|---|
| Unique Paths | Medium |
| Longest Common Subsequence | Medium |
| Best Time to Buy And Sell Stock With Cooldown | Medium |
| Coin Change II | Medium |
| Target Sum | Medium |
| Interleaving String | Medium |
| Longest Increasing Path In a Matrix | Hard |
| Distinct Subsequences | Hard |
| Edit Distance | Medium |
| Burst Balloons | Hard |
| Regular Expression Matching | Hard |
Greedy (8)
| Problem | Difficulty |
|---|---|
| Maximum Subarray | Medium |
| Jump Game | Medium |
| Jump Game II | Medium |
| Gas Station | Medium |
| Hand of Straights | Medium |
| Merge Triplets to Form Target Triplet | Medium |
| Partition Labels | Medium |
| Valid Parenthesis String | Medium |
Intervals (6)
| Problem | Difficulty |
|---|---|
| Insert Interval | Medium |
| Merge Intervals | Medium |
| Non Overlapping Intervals | Medium |
| Meeting Rooms | Easy |
| Meeting Rooms II | Medium |
| Minimum Interval to Include Each Query | Hard |
Bit Manipulation (7)
| Problem | Difficulty |
|---|---|
| Single Number | Easy |
| Number of 1 Bits | Easy |
| Counting Bits | Easy |
| Reverse Bits | Easy |
| Missing Number | Easy |
| Sum of Two Integers | Medium |
| Reverse Integer | Medium |
Math & Geometry (8)
| Problem | Difficulty |
|---|---|
| Rotate Image | Medium |
| Spiral Matrix | Medium |
| Set Matrix Zeroes | Medium |
| Happy Number | Easy |
| Plus One | Easy |
| Pow(x, n) | Medium |
| Multiply Strings | Medium |
| Detect Squares | Medium |
Doing all 150 is not the point — recognising the pattern is. If a category already feels automatic, solve two from it and move on. The Blind 75 is the subset to do first if you have under three weeks, and our 15 patterns guide explains what each category is actually teaching you.
NeetCode vs Blind 75
People often ask which to pick. Here's the honest comparison. Blind 75 is the original, ultra-curated list — a lean checklist of essentials, great for a fast pass. NeetCode 150 builds on that idea but makes the pattern structure explicit and adds more problems and worked explanations per category. If you want the smallest possible set to review before a loop, Blind 75 is perfect. If you want a structured, pattern-first roadmap with more practice per topic, the NeetCode 150 is the stronger long-term study plan. Many candidates do both: Blind 75 as the core, NeetCode 150 to go deeper.
A study order that works
The single biggest mistake is jumping around by difficulty. Do it by category instead, and finish one bucket before starting the next.
Weeks 1–2: Foundations
Arrays & hashing, two pointers, sliding window, stack. These are high-frequency and build confidence. Note the pattern for every problem you solve.
Weeks 3–5: Structures
Binary search, linked lists, trees, tries, heaps. Recursion and pointer discipline get built here. Re-solve anything that took more than one attempt.
Weeks 6–8: Hard patterns
Backtracking, graphs, and dynamic programming. DP is the steepest — take it slowly, and lean on the 1-D problems before the 2-D ones.
Weeks 9–10: Consolidate
Re-solve your weakest 25–30 problems from memory, timed. This is where recognition turns into reflex.
How to practice efficiently
- Time-box. Give a problem 25–35 minutes; if you're stuck, read the approach, then re-solve it from scratch later. Struggling forever is a poor use of reps.
- Label the pattern. After each solve, write one line: "this was a monotonic stack." That label is the thing you're actually training.
- Re-solve, don't re-read. Passive review feels productive and isn't. Blank-page repetition is what sticks.
- Narrate out loud. Interviews grade communication, so practice explaining your reasoning as you code, not silently.
The bottom line
The NeetCode 150 works because it's pattern-first: 150 problems, ~18 patterns, one goal — recognize the shape of a problem fast. Use the NeetCode 75 if you're short on time, follow the category order rather than difficulty, re-solve your weak spots, and always narrate out loud. Do that and the list stops being a checklist and becomes real fluency.
Choosing a tool to rehearse with? Our comparison of AI interview assistants lists each option's free tier, starting price and supported platforms side by side.
Rehearse your reasoning, for free
Practice explaining solutions out loud with the free-forever plan — no trial timer, no credit card. A backup brain while you work the list, then real fluency when it counts.
See Pricing →FAQ
What is the NeetCode 150?
The NeetCode 150 is a curated list of 150 LeetCode problems grouped into roughly 18 patterns — arrays and hashing, two pointers, sliding window, stacks, binary search, trees, graphs, dynamic programming, and more. It expands on the older Blind 75 list to give fuller coverage of each pattern, and it's popular because working through it by category trains pattern recognition rather than memorization.
What is the difference between NeetCode 75 and NeetCode 150?
NeetCode 75 is a streamlined 75-problem subset meant to cover every major pattern with the minimum number of problems, ideal for tight timelines. NeetCode 150 keeps the same pattern structure but adds more problems per category for deeper reinforcement. Start with the 75 if you're short on time; move to the 150 when you want extra reps and edge-case exposure.
Is NeetCode better than Blind 75?
They serve slightly different needs. Blind 75 is the original minimal curated set — great for a fast pass over the essentials. NeetCode reorganizes those ideas explicitly by pattern and, in the 150 version, adds more problems and video explanations per category. If you want a lean checklist, Blind 75 is fine; if you want a structured, pattern-first roadmap with more practice per topic, NeetCode 150 is the stronger fit.
How long does it take to finish the NeetCode 150?
At a sustainable pace of three to five problems a day, most people work through the NeetCode 150 in six to ten weeks, then spend a couple more weeks re-solving the ones they struggled with. The goal isn't to finish fast — it's to reach the point where you can name the pattern within the first minute of reading a new problem. Re-solving beats rushing to the end.
In what order should I do the NeetCode 150?
Follow the built-in category order rather than problem difficulty. Start with arrays and hashing, then two pointers and sliding window, then stacks and binary search, then linked lists and trees, then tries and heaps, then backtracking and graphs, and finish with dynamic programming and the harder categories. Completing one pattern before moving on lets the repetition compound.
What problems are on the NeetCode 150?
The 150 problems are grouped into 18 categories: Arrays & Hashing (9), Two Pointers (5), Sliding Window (6), Binary Search (7), Linked List (11), Stack (6), Trees (15), Tries (3), Backtracking (10), Heap / Priority Queue (7), Graphs (13), Advanced Graphs (6), 1-D Dynamic Programming (12), 2-D Dynamic Programming (11), Greedy (8), Intervals (6), Bit Manipulation (7) and Math & Geometry (8). The split is 28 easy, 101 medium and 21 hard. The full list is on this page.
How many easy, medium and hard problems are in the NeetCode 150?
28 easy, 101 medium and 21 hard. It is a deliberately medium-heavy list, because the medium tier is what most interview questions actually sit at. If the hard problems are blocking you, skip them on the first pass and come back after you have finished every category once.