01Week 1
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
02Week 2
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
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
03Week 3
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
04Week 4
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