List · 150 problems
NeetCode 150: All 150 Problems in a Study Order
One hundred fifty problems is a long road. I walk it one topic at a time, so each step builds on the last. The order is mine. I start with the openers, then go one topic at a time, easiest first.
Free: write the code and run it, no sign-up.
Whose list this is
NeetCode built the NeetCode 150. StrongYes did not write it, and the problems belong to their sources. Every problem below opens a StrongYes practice page for the problem with the same name. Source: NeetCode.
The problems, in my order
28 easy · 101 medium · 21 hard. Solved marks come from this browser and, signed in, your account.
- Contains DuplicateeasyArrays & Hashing
- Plus OneeasyArrays & Hashing
- Valid AnagrameasyStringsArrays & Hashing
- Happy NumbereasyTwo PointersArrays & Hashing
- Two SumeasyTwo PointersArrays & Hashing
- Valid PalindromeeasyTwo PointersStrings
- Detect SquaresmediumDesignArrays & Hashing
- Group AnagramsmediumStringsArrays & Hashing
- Product of Array Except SelfmediumArrays & Hashing
- Rotate ImagemediumArrays & Hashing
- Set Matrix ZeroesmediumArrays & Hashing
- Spiral MatrixmediumArrays & Hashing
- Valid SudokumediumArrays & Hashing
- 3SummediumTwo PointersArrays & Hashing
- Two Sum II - Input Array Is SortedmediumTwo PointersArrays & Hashing
- Valid ParentheseseasyStackStrings
- Car FleetmediumStackArrays & Hashing
- Daily TemperaturesmediumStackArrays & Hashing
- Evaluate Reverse Polish NotationmediumStackArrays & Hashing
- Min StackmediumStackDesign
- Largest Rectangle in HistogramhardStackArrays & Hashing
- Binary SearcheasyBinary SearchArrays & Hashing
- Find Minimum in Rotated Sorted ArraymediumBinary SearchArrays & Hashing
- Koko Eating BananasmediumBinary SearchArrays & Hashing
- Search a 2D MatrixmediumBinary SearchArrays & Hashing
- Search in Rotated Sorted ArraymediumBinary SearchArrays & Hashing
- Time Based Key-Value StoremediumBinary SearchDesign
- Median of Two Sorted ArrayshardBinary SearchArrays & Hashing
- Best Time to Buy and Sell StockeasySliding WindowArrays & Hashing
- Analytics: Longest Unique Session WindowmediumSliding WindowStrings
- Longest Repeating Character ReplacementmediumSliding WindowTwo Pointers
- Permutation in StringmediumSliding WindowTwo Pointers
- Minimum Window SubstringhardSliding WindowStrings
- Linked List CycleeasyLinked ListsTwo Pointers
- Merge Two Sorted ListseasyLinked Lists
- Reverse Linked ListeasyLinked Lists
- Add Two NumbersmediumLinked Lists
- Copy List with Random PointermediumLinked ListsArrays & Hashing
- LRU CachemediumLinked ListsDesign
- Remove Nth Node From End of ListmediumLinked ListsTwo Pointers
- Reorder ListmediumLinked ListsStack
- Reverse Nodes in k-GrouphardLinked Lists
- Implement Trie (Prefix Tree)mediumTreesDesign
- Balanced Binary TreeeasyTreesBFS & DFS
- Diameter of Binary TreeeasyTreesBFS & DFS
- Invert Binary TreeeasyTreesBFS & DFS
- Maximum Depth of Binary TreeeasyTreesBFS & DFS
- Same TreeeasyTreesBFS & DFS
- Subtree of Another TreeeasyTreesStrings
- Binary Tree Level Order TraversalmediumTreesBFS & DFS
- Binary Tree Right Side ViewmediumTreesBFS & DFS
- Construct Binary Tree from Preorder and Inorder TraversalmediumTreesBFS & DFS
- Count Good Nodes in Binary TreemediumTreesBFS & DFS
- Design Add and Search Words Data StructuremediumTreesDesign
- Kth Smallest Element in a BSTmediumTreesBFS & DFS
- Lowest Common Ancestor of a Binary Search TreemediumTreesBFS & DFS
- Validate Binary Search TreemediumTreesBFS & DFS
- Serialize and Deserialize Binary TreehardTreesDesign
- Kth Largest Element in a StreameasyHeapsTrees
- Last Stone WeighteasyHeapsArrays & Hashing
- Design TwittermediumLinked ListsHeaps
- K Closest Points to OriginmediumBinary SearchHeaps
- Kth Largest Element in an ArraymediumBinary SearchHeaps
- Telemetry: Top K Frequent Error CodesmediumHeapsArrays & Hashing
- Find Median from Data StreamhardHeapsTwo Pointers
- Merge K Sorted ListshardLinked ListsHeaps
- Sliding Window MaximumhardSliding WindowStack
- Combination SummediumBacktrackingArrays & Hashing
- Combination Sum IImediumBacktrackingArrays & Hashing
- Letter Combinations of a Phone NumbermediumBacktrackingStrings
- PermutationsmediumBacktrackingArrays & Hashing
- Word SearchmediumBacktrackingStrings
- N-QueenshardBacktrackingArrays & Hashing
- Word Search IIhardBacktrackingTrees
- Clone GraphmediumGraphsBFS & DFS
- Course SchedulemediumHeapsGraphs
- Course Schedule IImediumGraphsBFS & DFS
- Graph Valid TreemediumGraphsBFS & DFS
- Longest Consecutive SequencemediumGraphsArrays & Hashing
- Max Area of IslandmediumGraphsBFS & DFS
- Network Delay TimemediumHeapsGraphs
- Number of Connected Components in an Undirected GraphmediumGraphsBFS & DFS
- Number of IslandsmediumGraphsBFS & DFS
- Pacific Atlantic Water FlowmediumGraphsBFS & DFS
- Redundant ConnectionmediumGraphsBFS & DFS
- Rotting OrangesmediumGraphsBFS & DFS
- Surrounded RegionsmediumGraphsBFS & DFS
- Walls and GatesmediumGraphsBFS & DFS
- Alien DictionaryhardGraphsStrings
- Reconstruct ItineraryhardBacktrackingGraphs
- Swim in Rising WaterhardBinary SearchHeaps
- Word LadderhardGraphsStrings
- Climbing StairseasyDynamic Programming
- Min Cost Climbing StairseasyDynamic ProgrammingArrays & Hashing
- Cheapest Flights Within K StopsmediumHeapsGraphs
- Coin ChangemediumDynamic ProgrammingBFS & DFS
- Coin Change IImediumDynamic ProgrammingArrays & Hashing
- Decode WaysmediumDynamic ProgrammingStrings
- Edit DistancemediumDynamic ProgrammingStrings
- Equal Sum Array PartitionmediumDynamic ProgrammingArrays & Hashing
- Generate ParenthesesmediumBacktrackingDynamic Programming
- House RobbermediumDynamic ProgrammingArrays & Hashing
- House Robber IImediumDynamic ProgrammingArrays & Hashing
- Interleaving StringmediumDynamic ProgrammingStrings
- Longest Common SubsequencemediumDynamic ProgrammingStrings
- Longest Increasing SubsequencemediumBinary SearchDynamic Programming
- Longest Palindromic SubstringmediumTwo PointersDynamic Programming
- Maximum Product SubarraymediumDynamic ProgrammingArrays & Hashing
- Maximum SubarraymediumDynamic ProgrammingArrays & Hashing
- Palindrome PartitioningmediumBacktrackingDynamic Programming
- Palindromic SubstringsmediumTwo PointersDynamic Programming
- Stock Trading with CooldownmediumDynamic ProgrammingArrays & Hashing
- Target SummediumBacktrackingDynamic Programming
- Unique PathsmediumDynamic Programming
- Word BreakmediumTreesDynamic Programming
- Binary Tree Maximum Path SumhardTreesDynamic Programming
- Burst BalloonshardDynamic ProgrammingArrays & Hashing
- Distinct SubsequenceshardDynamic ProgrammingStrings
- Longest Increasing Path in a MatrixhardGraphsDynamic Programming
- Regular Expression MatchinghardBacktrackingDynamic Programming
- Trapping Rain WaterhardStackHeaps
- Container With Most WatermediumGreedyTwo Pointers
- Gas StationmediumGreedyArrays & Hashing
- Hand of StraightsmediumGreedyArrays & Hashing
- Jump GamemediumGreedyDynamic Programming
- Jump Game IImediumGreedyDynamic Programming
- Merge Triplets to Form Target TripletmediumGreedyArrays & Hashing
- Min Cost to Connect All PointsmediumGreedyHeaps
- Partition LabelsmediumGreedyTwo Pointers
- Task SchedulermediumGreedyHeaps
- Valid Parenthesis StringmediumStackGreedy
- Meeting RoomseasyIntervalsGreedy
- Insert IntervalmediumIntervalsArrays & Hashing
- Meeting Rooms IImediumIntervalsGreedy
- Merge IntervalsmediumIntervalsArrays & Hashing
- Non-overlapping IntervalsmediumIntervalsGreedy
- Minimum Interval to Include Each QueryhardIntervalsBinary Search
- Multiply StringsmediumStrings
- Pow(x, n)medium
- Reverse Integermedium
- Counting BitseasyBit ManipulationDynamic Programming
- Missing NumbereasyBit ManipulationBinary Search
- Number of 1 BitseasyBit Manipulation
- Reverse BitseasyBit Manipulation
- Single NumbereasyBit ManipulationArrays & Hashing
- Find the Duplicate NumbermediumBit ManipulationBinary Search
- SubsetsmediumBit ManipulationBacktracking
- Subsets IImediumBit ManipulationBacktracking
- Sum of Two IntegersmediumBit Manipulation
- Encode and Decode StringsmediumDesignStrings
How I'd work it
- 1
Finish the Blind 75 core first
The 150 grows out of the 75. The order below puts those problems early, so the foundation comes first.
- 2
Pace it by topic
Finish a topic before you start the next. Ten problems a week for fifteen weeks beats a month of cramming.
- 3
Revisit the shaky ones
Rewrite a problem from a blank file a few days later. Then explain it out loud without notes.
Two problems a day, five days a week, finishes this list in about 15 weeks.
The list by pattern
Every problem is a costume over a smaller idea. Learn the idea and the costume stops mattering.
Where Coco comes in
Coco is an AI study partner, not a person. She listens while you explain your code, asks what a line does and never hands you the fix. Sign in free to type with Coco, up to a daily limit, and to talk with her for one hour. After that, talking comes with the $79 pack. Anyone can open the editor and run their code.
Questions people ask
- How long does the NeetCode 150 take?
- Two problems a day, five days a week, takes about fifteen weeks. Plan the calendar before you start.
- Should I do the Blind 75 or the NeetCode 150?
- Start with the Blind 75 if your interview is close. Choose the 150 when you have months and want more practice per pattern.
- Is this the same order NeetCode uses?
- No. The membership matches the list. The order is mine, built to introduce topics gently.
Keep going
Fin and Coco are characters, not people. strongyes.io is independent. Leo builds it with AI agents.
