Index of DSA =================== 7 - 8 LPA =================== 0. Introduction
- Core Concepts
- Recursion & Backtracking basic to intermediate
- Arrays (Sliding Window, Two Pointer, Prefix Sum, Kadane's Algorithm)
- Strings (Basic to Intermediate) including conversion of string to integer and vice versa etc.
- Linked List (Implementation, Reverse, CRUD Operations )
- Stack & Queue (Implementation using Arrays & Linked List)
- Tree
- Binary Search Tree
- Hashing & HashMaps & Collision resolution
- Bit Manipulation (Basic to Intermediate)
=================== above 10 LPA ===================
- Advance Recursion & Backtracking
- Advance Arrays (Matrix Multiplication & 2D Arrays, Spriral Matrix, Matrix Chain Multiplication)
- Advance Strings Algorithms & Pattern Searching (KMP & Rabin Karp)
- Advance Linked List (Merge Sort, Quick Sort, Detect Cycle, Detect Intersection)
- Advance Stack & Queue (Queue using Stack, Stack using Queue, Deque)
- Advance Tree (Binary Tree, Binary Search Tree, AVL Tree, Red Black Tree, Segment Tree, Fenwick Tree) {Mainly Theory}
- Graph (DFS, BFS, Topological Sort, Shortest Path, Minimum Spanning Tree, Graph Coloring, Articulation Point, Bridges, Strongly Connected Components) etc.
- Trie
- Heap & Priority Queue
- Disjoint Set & Union Find
- Segment Tree & Fenwick Tree
- Greedy Algorithms
- Dynamic Programming (Basic to advance)
- Bit Manipulation
=================== Algorithms ===================
-
Searching & Sorting Algorithms -> Linear Search, Binary Search, Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, Heap Sort, Counting Sort, Radix Sort, Bucket Sort etc.
-
Divide & Conquer -> Binary Search, Merge Sort, Quick Sort, Strassen's Matrix Multiplication, Karatsuba Multiplication etc.
-
Greedy Algorithms -> Fractional Knapsack, Job Sequencing, Huffman Coding, Prim's Algorithm, Kruskal's Algorithm etc.
-
Dynamic Programming -> 0/1 Knapsack, Longest Common Subsequence, Longest Increasing Subsequence, Matrix Chain Multiplication, Edit Distance, Coin Change, Rod Cutting, Subset Sum, Travelling Salesman Problem, Floyd Warshall, Bellman Ford, Johnson's Algorithm etc.
-
Backtracking -> N-Queens, Sudoku, Knight's Tour, Rat in a Maze etc.
-
Bit Manipulation -> XOR, Counting Bits, Bit Masking etc.
-
Graph Algorithms -> BFS, DFS, Shortest Path, Minimum Spanning Tree, Topological Sort, Articulation Point, Bridges, Strongly Connected Components etc.
=================== Dynamic Programming Pattern =================== beginner to advance including 1D, 2D and 3D DP patterns
- 0/1 Knapsack
- Longest Common Subsequence
- Longest Increasing Subsequence
- Matrix Chain Multiplication
- Edit Distance
- Coin Change
- Rod Cutting
- Subset Sum
- Travelling Salesman Problem
- Floyd Warshall
- Bellman Ford
- Johnson's Algorithm
- DP on Trees
- DP on Grid
- DP on Strings
- DP on Bitmasking
- DP on Graphs
- DP on Matrix
- DP on Interval