- Basics: Insert, Delete, Update
- Sliding Window Technique
- Two Pointer Technique
- Kadane’s Algorithm (Max Subarray Sum)
- Prefix Sum and Difference Array
- String Matching Algorithms:
- Naive Method
- KMP Algorithm
- Rabin-Karp Algorithm
- Palindrome Check
- Longest Palindromic Substring
- Z Algorithm
- Trie Data Structure (Prefix Tree)
- Singly Linked List
- Doubly Linked List
- Circular Linked List
- Reverse a Linked List (Iterative and Recursive)
- Detect Cycle in a Linked List (Floyd’s Cycle Detection)
- Merge Two Sorted Linked Lists
- Intersection of Two Linked Lists
- Stack:
- Infix to Postfix/Prefix Conversion
- Next Greater/Smaller Element
- Balanced Parentheses Check
- Queue:
- Circular Queue
- Deque (Double-Ended Queue)
- Priority Queue
- Binary Tree:
- Traversals: Inorder, Preorder, Postorder (Recursive and Iterative)
- Height of Tree
- Diameter of Tree
- Lowest Common Ancestor
- Binary Search Tree:
- Insertion, Deletion
- Validate BST
- Kth Smallest/Largest Element
- Advanced Trees:
- AVL Tree
- Segment Tree
- Fenwick Tree (Binary Indexed Tree)
- Trie
- Representation (Adjacency Matrix/List)
- Breadth-First Search (BFS)
- Depth-First Search (DFS)
- Shortest Path Algorithms:
- Dijkstra’s Algorithm
- Bellman-Ford Algorithm
- Floyd-Warshall Algorithm
- Minimum Spanning Tree:
- Kruskal’s Algorithm
- Prim’s Algorithm
- Topological Sorting
- Strongly Connected Components (Tarjan’s Algorithm/Kosaraju’s Algorithm)
- Hash Table
- Hash Maps (Chaining, Open Addressing)
- Collision Resolution Techniques
- Frequency Counting Problems
- Min Heap and Max Heap
- Heapify Operation
- Kth Largest/Smallest Element
- Median in a Stream
- Heap Sort
- Subset Sum Problem
- N-Queens Problem
- Sudoku Solver
- Permutations and Combinations
- Rat in a Maze
- Knapsack Problems (0/1 and Unbounded)
- Longest Common Subsequence (LCS)
- Longest Increasing Subsequence (LIS)
- Matrix Chain Multiplication
- Subset Sum Problem
- Coin Change Problem
- DP on Trees (Diameter, Path Sum)
- DP on Graphs
- Activity Selection Problem
- Huffman Encoding
- Job Sequencing Problem
- Fractional Knapsack Problem
- Merge Sort
- Quick Sort
- Binary Search (and its variants)
- Maximum Subarray Problem (Divide and Conquer version)
- Bubble Sort, Selection Sort, Insertion Sort
- Merge Sort, Quick Sort
- Counting Sort, Radix Sort, Bucket Sort
- Binary Search and Variants (First/Last Occurrence, Peak Element)
- Ternary Search
- Exponential Search
- Sieve of Eratosthenes (Prime Numbers)
- Euclidean Algorithm (GCD)
- Modular Exponentiation
- Matrix Exponentiation
- Number Theory (LCM, Modular Arithmetic)
- Combinatorics (nCr Calculation)
- Basic Operations (AND, OR, XOR, Left/Right Shifts)
- Count Set Bits (Brian Kernighan’s Algorithm)
- Find the Single Number
- Subset Generation Using Bits
- Fast Exponentiation
- Maximum/Minimum in a Sliding Window
- Longest Substring Without Repeating Characters
- Longest Subarray with Sum K
- Disjoint Set Union (DSU)/Union-Find
- Floyd’s Cycle Detection Algorithm
- KMP Algorithm for Pattern Matching
- Rabin-Karp Algorithm
- Fast Fourier Transform (FFT)