Level 2 Training Plan
This program focuses on recursion, complete search, graph algorithms, trees, and dynamic programming — preparing you to solve intermediate to advanced problems.
Week 1 Recursion & Complete Search
- Revisiting fundamentals with a general problem sheet.
- Introduction to Recursion, its time complexity, and Complete Search.
- Using C++ `next_permutation`.
Week 2 Backtracking & Bitmasking
- Complete Search Techniques: Backtracking for permutations and exploring subsets with bitmasks.
- Solving a general problem sheet to reinforce Phase 1 topics.
Week 3 Graph Basics & DFS
- Graph Representations (Adjacency List/Matrix), degree, and connected components.
- Depth First Search (DFS) and its applications, including cycle detection.
Week 4 Advanced DFS & Grid Traversal
- Advanced Applications: Bipartite graph detection and Topological Sorting (DFS & Kahn's Algorithm).
- Techniques for traversing grid-based graphs.
Week 5 Breadth First Search (BFS)
- Introduction to Breadth First Search (BFS).
- Finding the Shortest Path in unweighted graphs.
Week 6 Trees & Tree Traversals
- Identifying trees, calculating tree diameter and center.
- Finding the distance between two nodes in a tree.
Week 7 Introduction to Dynamic Programming
- Understanding the core concepts of Dynamic Programming (DP).
- The Memoization approach for solving recursive DP problems.
Week 8 Subset DP & Classic Problems
- Subset DP and classic problems: Knapsack, Longest Increasing/Common Subsequence (LIS/LCS), and Coin Change.
- Introduction to Iterative DP.
Week 9 Counting & Output DP
- Techniques for DP counting problems.
- How to build the final output from a DP state.
- Further exploration of iterative DP.
Week 10 Classic DP Problems (Iterative)
- Focusing on solving classic DP problems using an iterative (bottom-up) approach.
Week 11 Range DP
- Exploring Range DP and consecutive range styles.
Week 12 Single-Source Shortest Path
- Dijkstra's Algorithm for weighted graphs.
- 0-1 BFS as an optimized version of Dijkstra.
Week 13 All-Pairs Shortest Path & Negative Cycles
- Floyd-Warshall Algorithm for all-pairs shortest paths.
- Bellman-Ford Algorithm for detecting negative cycles.