How many LeetCode problems should I do per day?
The number of LeetCode problems you should aim to solve per day depends on your goals, experience level, and the time you can commit. Consistent daily practice is essential for improving your problem-solving skills and preparing for technical interviews. Here's a breakdown of how many problems you should solve per day based on your current skill level and goals.
1. Factors That Determine How Many Problems You Should Solve
a. Skill Level
- Beginner: Learning foundational algorithms, data structures, and coding problem-solving techniques.
- Intermediate: Comfortable with basic concepts but needing more practice with Medium-level problems and some Hard ones.
- Advanced: Experienced in problem-solving but looking to master more complex problems for technical interviews at top companies.
b. Goals
- Preparing for Interviews: Focusing on coding interviews for companies like FAANG or other top tech firms.
- Improving General Problem-Solving Skills: Looking to improve overall coding abilities, algorithm knowledge, and technical thinking.
- Competitive Programming: Preparing for coding competitions or building speed and accuracy under pressure.
c. Time Availability
- Limited Time: If you can only commit an hour or less per day, you may solve fewer problems.
- More Availability: If you have several hours to dedicate daily, you can tackle more problems at different difficulty levels.
2. Suggested Number of LeetCode Problems Per Day by Skill Level
a. Beginners (1-3 Problems Per Day)
For those just starting, it’s essential to focus on learning the basics rather than rushing through problems. Start with 1 to 3 problems per day, depending on the time you have.
- Focus on Easy Problems: Spend most of your time solving Easy-level problems to build confidence and solidify core concepts like arrays, strings, and recursion.
- Breakdown:
- 1 Easy Problem per day (30-45 minutes): If you're completely new to coding.
- 2-3 Easy Problems per day (1-2 hours): Once you’re comfortable with the basics, try to solve at least 2-3 problems daily to maintain consistency.
b. Intermediate (3-5 Problems Per Day)
For intermediate coders who already understand basic algorithms and data structures, aim to solve 3 to 5 problems per day.
- Mix Easy and Medium Problems: Spend most of your time solving Medium-level problems, with some Easy ones as warm-ups or to solidify understanding.
- Breakdown:
- 1 Easy Problem per day (10-15 minutes): Use this as a warm-up or quick review of basic concepts.
- 2-4 Medium Problems per day (1-3 hours): These should be the core focus of your daily practice. Try to solve problems from different topics (arrays, trees, dynamic programming, etc.).
c. Advanced (5-8+ Problems Per Day)
For advanced users preparing for FAANG interviews or competitive programming, aim for 5 to 8 problems per day.
- Focus on Medium and Hard Problems: Spend most of your time on Medium and Hard problems to build advanced problem-solving techniques and optimize code.
- Breakdown:
- 1 Easy Problem per day (10 minutes): A quick warm-up to get into problem-solving mode.
- 3-5 Medium Problems per day (2-3 hours): Medium problems should remain the core focus since they represent most interview questions.
- 1-2 Hard Problems per day (1-2 hours): Tackle Hard problems to stretch your skills, particularly if you’re targeting top tech companies or senior-level positions.
3. Problem Types and Topic Distribution
Regardless of how many problems you solve per day, it’s crucial to cover a diverse range of topics to ensure well-rounded preparation. Here’s how you can distribute problems across different topics:
- Arrays and Strings: Focus on these topics early on, as they are fundamental to many problem types.
- Linked Lists: Solve problems that involve traversing and modifying linked lists.
- Trees and Graphs: Spend time on tree traversal and graph algorithms, as these are frequently asked in interviews.
- Dynamic Programming: Start practicing common DP problems (like Fibonacci, knapsack, etc.), especially as you advance to Medium and Hard problems.
- Recursion and Backtracking: Master recursion and backtracking techniques for problems involving permutations, combinations, and constraint satisfaction.
- Sorting and Searching Algorithms: Keep practicing binary search and sorting techniques.
- Hash Tables: Solve problems that require efficient lookups and use of hash maps.
4. How to Optimize Daily Problem-Solving Practice
a. Quality Over Quantity
It’s better to focus on fully understanding and solving fewer problems than rushing through a large number without truly grasping the concepts. Take time to:
- Understand the Problem Statement: Carefully read the problem to ensure you understand the requirements, constraints, and edge cases.
- Optimize Your Solution: After solving a problem, revisit your code to improve its time and space complexity.
- Review Multiple Solutions: Check the LeetCode Discuss section to learn different approaches and optimizations from the community.
b. Set a Daily Routine
Establishing a routine helps make problem-solving a habit. Here’s a suggested routine based on your available time:
- Warm-Up (10-20 minutes): Start with an Easy problem to get into the flow.
- Main Problem-Solving Session (1-2 hours): Focus on solving 2-4 Medium problems. Spend time understanding the problem, writing clean code, and optimizing your solution.
- Hard Problem (Optional, 30-60 minutes): If you have time, tackle a Hard problem to challenge yourself and explore advanced concepts.
c. Track Progress and Adjust Goals
Use LeetCode’s tracking features to monitor your progress. If you’re consistently solving problems quickly and correctly, consider increasing the difficulty level or the number of problems you solve daily.
5. Special Preparation for FAANG Interviews
For FAANG and other top-tier tech company interviews, solving 5 to 8 problems per day is ideal, especially focusing on Medium and Hard problems.
- Interview-Specific Focus: Review problems that are frequently asked by these companies. LeetCode Premium provides company-specific problem sets.
- Mock Interviews: In addition to daily problem-solving, practice with mock interviews to get used to solving problems under time constraints and explaining your thought process.
6. Conclusion
Here’s a quick summary of how many LeetCode problems to solve per day based on your level:
- Beginners: 1-3 problems per day (1-2 hours), focusing on Easy problems.
- Intermediate: 3-5 problems per day (2-3 hours), with a mix of Medium and Easy problems.
- Advanced: 5-8 problems per day (3-4+ hours), focusing on Medium and Hard problems for top-tier interviews.
The key to success on LeetCode is consistency and gradual progression. Start with problems that match your current level, and as you build confidence, increase the difficulty and number of problems you solve each day.
GET YOUR FREE
Coding Questions Catalog