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.