CONTENTS
Session 1: Analysis of Algorithm, Mathematics & Bit Manipulation
● Asymptotic Analysis
● Time and Space Complexity
● Masters Theorem
● Bitwise Operators (Bitwise AND, Bitwise OR, Bitwise XOR, Left Shift, Right
Shift, etc )
● Problems: GCD and LCM, Iterative Power, Generate Power Set, etc
Session 2: Arrays
● Arrays - Introduction and Advantages
● Types of Arrays
● Operations of Arrays - Searching, Insertion, and Deletion
● Sliding Window Technique
● Problems: Largest Element in an Array, Leaders in an Array Problem, Maximum
Subarray Sum, etc
Session 3: Linked List
● Introduction to Linked List
● Traversing a Linked List
● Insertion and Deletion of Node in Linked List
● Doubly Linked List and Circular Linked List
● Problems: Middle of Linked List, Deleting a Node without accessing Head
pointer of Linked List, etc
CONTENTS
Session 4: Stack
● Stack - Introduction and Applications
● Stack Operations (e.g. push, pop, etc)
● Array Implementation of Stack
● Linked List Implementation of Stack
● Problems: Balanced Parenthesis, Next Greater Element, etc
Session 5: Queue and Deque
● Queue - Introduction and Application
● Implementation of Queue using Array
● Implementation of Queue using Linked List
● Deque - Introduction and Application
● Problems: Generate Numbers with Given Digits, First Circular Tour, etc
Session 6: Searching
● Linear Search
● Binary Search - Iterative and Recursive Approach
● Analysis of Binary Search
● Two Pointer Approach
● Problems: Index of the first Occurrence in SortedArray, Count 1s in a Sorted
Binary Array, Square root of a number, etc
CONTENTS
Session 7: Recursion and Backtracking
● Introduction to Recursion
● Writing Base Cases in Recursion
● Tail Recursion
● Introduction to Backtracking
● Problems: Print 1 to N Using Recursion, Rope Cutting Problem, Rat in a Maze,
etc
Session 8: Sorting
● Overview of the Sorting Algorithm
● Sorting Algorithms e.g. Bubble Sort, Selection Sort, Insertion Sort, Merge Sort,
Quick Sort with Analysis
● Stability of Sorting Algorithms
● Problems: Minimum Difference in an Array, Chocolate Distribution Problem, etc
Session 9: Matrix and Hashing
● Multidimensional Array
● Passing 2D Arrays as an argument
● Hashing Introduction, applications, and analysis
● Collision Handling
● Hashing Function
● Problems: Transpose of a Matrix, Matrix in Snake Pattern, Count Distinct
Elements, Frequencies of Array Elements, etc
CONTENTS
Session 10: Strings
● String Introduction
● Overview of Pattern Searching Algorithm
● Naive and Improved Naive Pattern Searching
● Rabin Karp Algorithm
● KMP Algorithm (Constructing LPS Array and Complete Algorithms)
● Problems: Palindrome Check, Reverse words in a string, Anagram Search, etc
Session 11: Tree
● Tree - Introduction and Application
● Introduction to Binary Tree
● Tree Traversal - Inorder, Preorder, and Postorder with Implementation
● Level Order Traversal
● Lowest Common Ancestor of a Binary Tree
● Serialize and Deserialize a Binary Tree
● Problems: Height of a Binary Tree, Diameter of a Binary Tree, etc
Session 12: Binary Search Tree
● BST - Introduction and Application
● Search in BST with Implementation
● Insert in BST with Implementation
● Deletion in BST with Implementation
● Self Balancing BST - AVL Tree, Red Black Tree
● Problems: Find Kth Smallest in BST, Vertical Sum in Binary Tree, Floor in BST,
etc
CONTENTS
Session 13: Greedy and Heap
● Introduction to Greedy Algorithm
● Binary Heap - Introduction
● Binary Heap - Insertion, Heapify, and Extract
● Binary Heap - Decrease, Delete and Build Heap
● Heap Sort
● Priority Queue
● Problems: Activity Selection Problem, Job Sequencing Problem, Sort K Sorted
Arrays, etc
Session 14: Dynamic Programming
● Introduction to Dynamic Programming
● Dynamic Programming Approach vs Greedy Approach
● How to approach a DP Problem
● Memoization and Tabulation methods
● Problems: Coin Change Problem, Longest Common Subsequence, Subset Sum
Problem, etc
Session 15: Graph
● Introduction to Graph
● Graph Representation(Adjacency List and Matrix)
● Breadth First Search - Introduction and Implementation
● Depth First Search - Introduction and Implementation
● Prims Algorithm - Introduction and Implementation
● Dijkstra Algorithm - Introduction and Implementation
● Problems: Bridges in Graph, Detect Cycle in a Directed Graph, etc
CONTENTS
Session 16: Graph (Advanced)
● Kruskal's Algorithm
● Bellman-Ford Algorithm
● Ford-Fulkerson Algorithm
● Problems: Strongly Connected Components, Find the No. of Islands, etc