The 1-month plan will cover the most essential topics, giving you broad exposure to common questions. The 3-month plan will deepen your understanding with more advanced topics and reinforce previous ones. The 6-month plan will aim for mastery, revisiting tricky concepts and refining problem-solving skills.
Time Commitment: 1 hour daily, 7 days a week
- Concepts to Focus On: Basic operations, sliding window, two pointers, hashing with arrays.
- LeetCode Questions:
- Day 1-2: Easy Problems
- Day 3-4: Medium Problems
- Day 5-6: Sliding Window & Two Pointers
- Day 7: Review Day
- Re-attempt 1-2 problems you found difficult and revise the concepts.
- Concepts to Focus On: Basic operations, reversing a list, stack-based problems (e.g., parentheses).
- LeetCode Questions:
- Day 1-2: Linked Lists (Easy & Medium)
- Day 3-4: Medium Linked List Problems
- Day 5: Stacks and Queues (Easy & Medium)
- Day 6: Stack Problems (Medium)
- Day 7: Review Day
- Revisit 1-2 problems that were challenging or unclear.
- Concepts to Focus On: Frequency counting, sorting algorithms, binary search implementation.
- LeetCode Questions:
- Day 1-2: Hash Maps
- Day 3-4: Binary Search (Easy & Medium)
- Day 5-6: Sorting
- Day 7: Review Day
- Attempt 1-2 difficult problems again.
- Concepts to Focus On: Tree traversals, basic graph representation, DFS/BFS.
- LeetCode Questions:
- Day 1-2: Trees (Easy)
- Day 3-4: Trees (Medium)
- Day 5: Graph Basics (Introduction)
- Day 6: Graph Traversal
- Day 7: Review Day
- Review tree and graph problems.
Now is a good time to study some of the patterns in the leet code questions and try to solve more advanced algorithm. You can start by targeting each pattern, doing 4-5 questions for each and then moving on to more complex problems once these patterns are covered.
https://hackernoon.com/14-patterns-to-ace-any-coding-interview-question-c5bb3357f6ed https://www.youtube.com/playlist?list=PL7g1jYj15RUOjoeZAJsWjwV8XUo9r0hwc https://www.youtube.com/watch?v=xo7XrRVxH8Y https://www.youtube.com/watch?v=DjYZk8nrXVY https://github.com/dipjul/Grokking-the-Coding-Interview-Patterns-for-Coding-Questions
- Day 5: Attempt one full-length mock interview on LeetCode, focusing on the problems covered so far.
Focus: Next 2 months; the first month is already completed.
-
Week 5: Advanced Linked Lists and Introduction to Heaps
- Concepts: Cycle detection, heap operations.
- LeetCode Questions:
-
Week 6: Dynamic Programming (Intro)
- Concepts: Memoization, tabulation.
- LeetCode Questions:
-
Week 7: Trees (In-Depth)
- Concepts: Binary search trees, tree traversals.
- LeetCode Questions:
-
Week 8: Graph Algorithms (Medium Level)
- Concepts: DFS, BFS, shortest path.
- LeetCode Questions:
-
Mock Interviews: Take 2 full-length mock interviews this month on LeetCode or other platforms.
-
Week 9: Backtracking
- Concepts: Permutations, combinations, and pathfinding.
- LeetCode Questions:
-
Week 10: Advanced Dynamic Programming
- LeetCode Questions:
-
Week 11: Graphs (Advanced)
- LeetCode Questions:
- Network Delay Time
- [Cheapest Flights Within K Stops](https://leetcode
- LeetCode Questions:
.com/problems/cheapest-flights-within-k-stops/)
- Week 12: Review and Mock Interviews
- Review all problems covered in the past two months.
- Take 2-3 mock interviews focusing on the comprehensive set of topics.
Focus: Final 3 months, refining problem-solving skills and tackling advanced topics.
- Week 13-15: Deepen knowledge in graph algorithms (shortest paths, minimum spanning trees).
- Week 16-17: Practice complex dynamic programming problems.
- Week 18: Participate in coding contests on LeetCode to simulate pressure.
- Review: Revisit the hardest problems you've encountered. Focus on weaknesses.
- Mock Interviews: Conduct weekly mock interviews, simulating real pressure.