- Binary number system - Reverse a number - Armstrong number - Prime numbers
6. Functions (second week) (First week)
- Introduction to functions - Examples
7. Space and time complexity (Second week 20/08/2023 - 26/08/2023)
- Definition and basics - Polynomial evaluation 8. Arrays (Second week) - Introduction to arrays - Linear search and Binary search - Sorting algorithms - STL sort - Max subarray sum - Pair sum problem
9. 2D arrays (Second week)
- Introduction and searching - Example questions
10. Character arrays (Third week 27/08/2023 - 02/09/2023)
- Introduction and input - Palindromic arrays - Largest word in a string
11. Strings (Third week)
- Intro + STL functions on strings - Sorting a string
12. Questions (Third week)
- Target sum triplets (https://www.geeksforgeeks.org/find-a-triplet-that-sum-to-a-given-value/) - Max circular sum (https://www.geeksforgeeks.org/maximum-contiguous-circular-sum/) - String questions
13. Pointers (Third week)
- & operator - Introduction to pointers - Dereference operator - Pass by reference and Pass by value
14. Dynamic Memory Allocation (Third week)
- Compile time and run time - Heap and Stack - New, delete
15. Bit Manipulation (Fourth week 03/09/2023 - 09/09/2023)
- Get, set, clear, update - Is Power of 2 - Number of ones - Generate subsets 16. Questions (Fourth week) - Unique number in an array of duplicates - 2 unique numbers in an array of duplicates - Unique number in an array of triplets
17. Prime Sieve (Fourth week)
- Prime sieve
18. Number Theory basics (Fourth week)
- Euclid’s algo for GCD - Inclusion exclusion principle
19. Introduction to Recursion (Fourth week)
- Call stack - Fibonacci numbers - Factorial - Fast power - First occurrence and last occurrence - Increasing, Decreasing order - Time complexity for recursive functions (Master’s theorem)
20. Recursion - ll (Fourth week)
- Tower of hanoi - Reverse string - Replace pi - Remove duplicates - Move all x - Subsequence generation - Generate permutations
21. Recursion - lll (Fourth week)
- Permutation - Board game - 0-1 Knapsack - Tiling problem - Friends pairing problem - Count paths in Maze
- Rat in maze problem - N-queen problem 23. Divide and Conquer (Fifth week) - Merge sort - Quick sort
24. More sorting techniques (Fifth week)
- Counting sort - DNF algorithm - Wave sort
25. OOPS concepts (Fifth week)
- Classes and objects - Data members and functions - Getters, setters - Constructor & its types - Shallow and deep copy - Copy assignment - Destructor - Overloading
26. STL (Fifth week)
- Pair class - Other STL functions, Iterators, comparators 3 - Templates
27. Vectors (Fifth week)
- Intro - Methods - Sorting - Template
28. Linked List (Fifth week)
- Introduction and implementation - Insertion in linked list - Searching in linked list - Deletion in linked list - Reverse a linked list - Iterative and recursive solution - K reverse problem - Floyd's cycle detection and removal - Doubly linked list - Circular linked list 29. Challenges (Sixth week 17/09/2023 - 23/09/2023) - K append - Even after odd - Intersection point - Merge 2 sorted linked lists
30. Stacks (Sixth week)
- Introduction - Implement using array - Implement using linked list - Reverse a stack - Balanced parenthesis
31. Infix, prefix, postfix (Sixth week)
- Infix, prefix, postfix expression evaluation - Infix to prefix using stack - Infix to postfix using stack
32. Queues (Sixth week)
- Introduction - Implement using array - Implement using linked list - Implement stack using queue - Implement queue using stacks
33. Deque (Sixth week)
- Introduction - Maximum element - Max length unique character substring
- Histogram area - Circular tour - Balanced parentheses
35. Binary Trees (Seventh week)
- Introduction - Preorder, inorder, postorder - Level order - Sum at level K - Height and Diameter of Binary Tree - BFS traversal - DFS traversal - Count and sum nodes - Height balanced tree - Build balanced tree from array - Different views of binary tree - Nodes at distance K - Lowest common ancestor
36. Questions (Seventh week)
- Build from inorder and preorder - Sum at level K - Sum replacement problem - Maximum sum path - Shortest distance between nodes
37. Binary Search Tree (Eighth week 01/10/2023 - 07/10/2023)
- Introduction - Implementation and insertion - Searching - Deletion - Check for BST - Find min and max element - Flatten a tree - Construct from preorder - Catalan no concept - Set STL
38. Questions (Eighth week)
- Structurally identical BST - ZigZag order - Largest BST in BT
39. Heaps (Eighth week)
- Introduction to priority queue - Heaps, insertion - Remove min and max element - Build heap from array - Heapsort - Priority queue STL, Running median
40. Challenges (Eighth week)
- Top k most frequent numbers in stream - Merge k sorted arrays - Length of Smallest Subsequence such that sum of elements is greater than equal to K 41. Hashtable (Ninth week 08/10/2023 - 14/10/2023) - Introduction to hash functions - Collision handling and separate chaining - Rehashing, load factor - Unordered_map STL - Max frequency character - Vertical order print
42. Hashing Problems (Ninth week)
- Number of subarrays with sum 0 - Longest subarray with sum k - Longest consecutive subsequence (https://www.geeksforgeeks.org/longest-consecutive-subsequence/) - Minimum window substring
43. Greedy Algorithm (Ninth week)
- Introduction - Activity selection problem - Job selection problem - 0/n knapsack problem - Optimal merge pattern problem - Huffman coding problem
- Introduction - Fibonacci problem - Minimum steps to 1 - Minimum coin change - Maximum subarray sum - Snakes and Ladders - 0/1 knapsack - LIS and LCS problem - Matrix chain multiplication - Friends pairing problem - Catalan number concept - Optimal game strategy - Optimal binary search tree - All pair shortest path problem 46. Challenges (Tenth week) - No. of Binary String - LCS w 3 strings - Wildcard pattern matching - Brackets all over - Max length bitonic subsequence - Max sum submatrix (https://www.geeksforgeeks.org/maximum-sum-rectangle-in-a-2d-matrix-dp-27/)
47. Graphs - l (Tenth week 22/10/2023 - 28/10/2023)
- Introduction - Representation - Adjacency list implementation - BFS - DFS - Topological sort - Cycle detection in directed and undirected graph - Connected components - Pairing problem - Bipartite graph check
48. Graphs - ll (Tenth week)
- Disjoint set introduction - Union and find - Path compression - Union by rank optimisation - Implementation
- Snakes and ladders problem - MST problem - Beautiful vertices 51. Questions (Twelfth week 31/12/2020 - 6/01/2021) - Sum of all submatrices in a matrix - Searching in sorted matrix - Rain water harvesting (https://www.geeksforgeeks.org/trapping-rain-water/) 52. Number theory Advanced (Thirteenth week) - Extended Euclid - Multiplicative modulo inverse - Euler totient function - Segmented sieve - Binary/Modular exponentiation - both recursive and iterative - Matrix Exponentiation - It’s cases - Fermat little theorem, wilson theorem 53. Tries (Thirteenth week) - Data structure introduction - Insertion - Searching - Phonebook problem - Xor subarray problem
54. Questions (Thirteenth week)
- Intersection of 2 arrays - String window - Subarrays with distinct element - Digital dictionary
55. String algorithms (Thirteenth week)
- Brute force - KMP - Finite automata - Robin karp
56. Segment tree (Fourteenth week 7/01/2021 - 13/01/2021)
- Intro, build, updation, query - Min, max, sum in the subarray - Lazy propagation
57. Binary indexed tree (Fourteenth week)
- Structure of BIT - Update or build, query. - Problems