Skip to main content

Best practice questions

tip

As of April 2022, I've developed a 12-week study plan which includes a curriculum for revision and practice questions. If you want to customize your own practice questions, I've also developed Grind 75 which is a modern version of Blind 75 that you can customize.

Hey there, the author of Blind 75 here 👋!

Practicing is the best way to prepare for coding interviews. LeetCode has over a thousand questions. Which should you practice? Hence years ago, I curated a list of the most important 75 questions on LeetCode. Many other LeetCode questions are a mash of the techniques from these individual questions. I used this list in my last job hunt to only do the important questions.

I shared this list on Blind by extracting the questions from my freeCodeCamp article to save peoples' time when revising and someone reposted this list on the LeetCode forum. It somehow blew up and became super famous in the coding interview scene, people even gave it a name - Blind 75. The Blind 75 questions as a LeetCode list can be found here.

Years later, I further distilled the list down into only 50 questions and spread them across a 5-week schedule. Here is the suggested schedule for revising and practicing algorithm questions on LeetCode. Sign up for an account if you don't already have one, it's critical to your success in interviewing!

When practicing, you are advised to treat it like a real coding interview and check through thoroughly before submitting. Consider even manually coming up with some test cases and running through them to verify correctness!

I've created a LeetCode list for the following questions (except the Premium ones). Feel free to use it to track your practice progress.

Expert tip

If you're running low on time, AlgoMonster aims to help you ace the technical interview in the shortest time possible. By Google engineers, AlgoMonster uses a data-driven approach to teach you most useful key question patterns and has contents to help you quickly revise basic data structures and algorithms. Learn and understand patterns, not memorize answers!

Week 1 - Sequences

In week 1, we will warm up by doing a mix of easy and medium questions on arrays and strings. Arrays and strings are the most common types of questions to be found in interviews; gaining familiarity with them will help in building strong fundamentals to better handle tougher questions.

QuestionDifficultyLeetCode
Two SumEasyLink
Contains DuplicateEasyLink
Best Time to Buy and Sell StockEasyLink
Valid AnagramEasyLink
Valid ParenthesesEasyLink
Maximum SubarrayEasyLink
Product of Array Except SelfMediumLink
3SumMediumLink
Merge IntervalsMediumLink
Group AnagramsMediumLink

Optional

QuestionDifficultyLeetCode
Maximum Product SubarrayMediumLink
Search in Rotated Sorted ArrayMediumLink

Week 2 - Data structures

The focus of week 2 is on linked lists, strings and matrix-based questions. The goal is to learn the common routines dealing with linked lists, traversing matrices and sequence analysis (arrays/strings) techniques such as sliding window, linked list traversal and matrix traversal.

QuestionDifficultyLeetCode
Reverse a Linked ListEasyLink
Detect Cycle in a Linked ListEasyLink
Container With Most WaterMediumLink
Find Minimum in Rotated Sorted ArrayMediumLink
Longest Repeating Character ReplacementMediumLink
Longest Substring Without Repeating CharactersMediumLink
Number of IslandsMediumLink
Remove Nth Node From End Of ListMediumLink
Palindromic SubstringsMediumLink
Pacific Atlantic Water FlowMediumLink
Minimum Window SubstringHardLink

Week 3 - Non-linear data structures

The focus of week 3 is on non-linear data structures like trees, graphs and heaps. You should be familiar with the various tree traversal (in-order, pre-order, post-order) algorithms and graph traversal algorithms such as breadth-first search and depth-first search. In my experience, using more advanced graph algorithms (Dijkstra's and Floyd-Warshall) is quite rare and usually not necessary.

QuestionDifficultyLeetCode
Invert/Flip Binary TreeEasyLink
Validate Binary Search TreeMediumLink
Non-overlapping IntervalsMediumLink
Construct Binary Tree from Preorder and Inorder TraversalMediumLink
Top K Frequent ElementsMediumLink
Clone GraphMediumLink
Course ScheduleMediumLink
Serialize and Deserialize Binary TreeHardLink
Binary Tree Maximum Path SumHardLink

Optional

QuestionDifficultyLeetCode
Maximum Depth of Binary TreeEasyLink
Same TreeEasyLink
Binary Tree Level Order TraversalMediumLink
Encode and Decode StringsMediumLink (Premium)

Week 4 - More data structures

Week 4 builds up on knowledge from previous weeks but questions are of increased difficulty. Expect to see such level of questions during interviews. You get more practice on more advanced data structures such as (but not exclusively limited to) heaps and tries which are less common but are still asked.

QuestionDifficultyLeetCode
Subtree of Another TreeEasyLink
Lowest Common Ancestor of BSTEasyLink
Implement Trie (Prefix Tree)MediumLink
Add and Search WordMediumLink
Kth Smallest Element in a BSTMediumLink
Merge K Sorted ListsHardLink
Find Median from Data StreamHardLink
Insert IntervalMediumLink
Longest Consecutive SequenceMediumLink
Word Search IIHardLink

Optional

QuestionDifficultyLeetCode
Meeting RoomsEasyLink (Premium)
Meeting Rooms IIMediumLink (Premium)
Graph Valid TreeMediumLink (Premium)
Number of Connected Components in an Undirected GraphMediumLink (Premium)
Alien DictionaryHardLink (Premium)

Week 5 - Dynamic programming

Week 5 focuses on Dynamic Programming (DP) questions. Personally as an interviewer, I'm not a fan of DP questions as they are not really applicable to practical scenarios and frankly if I were made to do the tough DP questions during my interviews I'd not have gotten the job. However, companies like Google still ask DP questions and if joining Google is your dream, DP is unavoidable.

DP questions can be hard to master and the best way to get better at them is... you guessed it - practice! Be familiar with the concepts of memoization and backtracking.

Practically speaking the return of investment (ROI) on studying and practicing for DP questions is very low. Hence DP questions are less important/optional and you should only do them if you have time to spare and you're very keen to have all bases covered (and interviewing with Google).

QuestionDifficultyLeetCode
Climbing StairsEasyLink
Coin ChangeMediumLink
Longest Increasing SubsequenceMediumLink
Combination SumMediumLink
House RobberMediumLink
House Robber IIMediumLink
Decode WaysMediumLink
Unique PathsMediumLink
Jump GameMediumLink
Word BreakMediumLink

Dynamic programming course

Quality courses

If you want more structured algorithms practice, I recommend the following courses:

AlgoMonster

AlgoMonster aims to help you ace the technical interview in the shortest time possible. By Google engineers, AlgoMonster uses a data-driven approach to teach you the most useful key question patterns and has contents to help you quickly revise basic data structures and algorithms. Best of all, AlgoMonster is not subscription-based - pay a one-time fee and get lifetime access. Join today for a 70% discount →

Grokking the Coding Interview: Patterns for Coding Questions

This course on by Design Gurus expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages along with step-by-step visualizations. Learn and understand patterns, not memorize answers! Get lifetime access now →

Master the Coding Interview: Data Structures + Algorithms

This Udemy bestseller is one of the highest-rated interview preparation course (4.6 stars, 21.5k ratings, 135k students) and packs 19 hours worth of contents into it. Like Tech Interview Handbook, it goes beyond coding interviews and covers resume, non-technical interviews, negotiations. It's an all-in-one package! Note that JavaScript is being used for the coding demos. Check it out →