
Below you can find the roadmap of my Data Structures and Algorithms (DSA) course, inspired by the Algomaster.io DSA patterns list. The arguments are in a specific order to build upon previously covered concepts.
| Topic | Description |
|---|---|
| Time and Space Complexity | Understanding how algorithm performance is measured using Big-O notation and analyzing time-space tradeoffs. |
| Arrays | Arrays are one of the most fundamental data structures in computer science. They provide a way to store elements in a contiguous block of memory, allowing efficient access and manipulation. |
| Strings | Strings are fundamental data types serving as the foundation for text processing, pattern recognition, and encoding/decoding operations. |
| Bit Manipulation | Bit manipulation (bit wise) is one of the most powerful tools in computer science, allowing direct control over how data is represented and processed at the hardware level. |
| Hashtable | A hash table is a data structure that stores key-value pairs and allows extremely fast lookups, insertions, and deletions, typically in O(1) average time. |
| Two Pointers | The Two Pointers technique uses two indices to solve array problems in linear time O(n) instead of inefficient O(n²) nested loops. |
| Prefix Sum | The Prefix Sum technique precomputes cumulative information so that range sum queries can be answered in O(1) time. |
| Sliding Window | The Sliding Window pattern transforms O(n²) problems into O(n) solutions by maintaining a window over data and adjusting it incrementally. |
| Kadane's Algorithm | Kadane's Algorithm is a classic algorithm designed to efficiently find the maximum sum subarray within a one-dimensional array of numbers in O(n) time. |
| Matrix (2D Array) | Matrix problems focus on navigating rows and columns, managing boundaries, applying consistent traversal rules, and performing transformations on 2D arrays. |
| Linked List | A linked list is a data structure consisting of nodes where each node contains a value and a reference to the next node, enabling flexible insertions and deletions. |
| Stack | A stack is a fundamental LIFO (Last In, First Out) data structure where the last element added is the first one to be removed. |
Below you can find the list of topics still not available:
| Topic | Description |
|---|---|
| Queues (Soon available) | FIFO data structure and applications in BFS and scheduling. |
| Monotonic Queue (Soon available) | Optimized sliding window max/min computations. |
| Bucket Sort (Soon available) | Sorting and counting problems using bucketization. |
| Recursion (Soon available) | Solving problems using self-referential function calls. |
| Divide and Conquer (Soon available) | Breaking problems into subproblems and combining results. |
| Merge Sort (Soon available) | Classic divide-and-conquer sorting algorithm. |
| QuickSort / QuickSelect (Soon available) | Efficient sorting and kth element selection. |
| Binary Search (Soon available) | Searching in sorted arrays, variants, and optimizations. |
| Backtracking (Soon available) | Generating combinations, permutations, and solving constraint problems. |
| Tree Traversal - Level Order (Soon available) | BFS traversal techniques for binary trees. |
| Tree Traversal - Pre Order (Soon available) | DFS pre-order traversal and recursion patterns. |
| Tree Traversal - In Order (Soon available) | DFS in-order traversal, useful for BSTs. |
| Tree Traversal - Post-Order (Soon available) | DFS post-order traversal, useful for tree reconstruction. |
| BST / Ordered Set (Soon available) | Binary search trees and ordered data set operations. |
| Tries (Soon available) | Prefix trees for efficient string storage and retrieval. |
| Heaps (Soon available) | Priority queues and heap-based algorithms. |
| Two Heaps (Soon available) | Solving median and top-k problems using two heaps. |
| Top K Elements (Soon available) | Finding largest/smallest elements efficiently. |
| Intervals (Soon available) | Interval merging, scheduling, and overlap problems. |
| K-Way Merge (Soon available) | Merging multiple sorted arrays or lists efficiently. |
| Data Structure Design (Soon available) | Designing custom data structures for specific tasks. |
| Greedy (Soon available) | Making optimal local choices to reach global solutions. |
| Depth First Search (DFS) (Soon available) | Traversing graphs and trees using recursion or stack. |
| Breadth First Search (BFS) (Soon available) | Level-wise traversal for shortest paths and connectivity. |
| Topological Sort (Soon available) | Ordering nodes in DAGs respecting dependencies. |
| Union Find (Soon available) | Disjoint set operations for connectivity and cycle detection. |
| Minimum Spanning Tree (Soon available) | MST algorithms like Kruskal and Prim. |
| Shortest Path (Soon available) | Dijkstra, Bellman-Ford, and related algorithms. |
| Eulerian Circuit (Soon available) | Traversal visiting every edge exactly once. |
| 1-D DP (Soon available) | Dynamic programming on linear structures. |
| Knapsack DP (Soon available) | Solving 0/1 knapsack and subset sum problems. |
| Unbounded Knapsack DP (Soon available) | Knapsack problems with unlimited item repetitions. |
| Longest Increasing Subsequence DP (Soon available) | Finding increasing subsequences in arrays. |
| 2D (Grid) DP (Soon available) | DP on grids, path counting, and matrix transformations. |
| String DP (Soon available) | DP applied to strings for subsequence and substring problems. |
| Tree / Graph DP (Soon available) | Dynamic programming on hierarchical and graph structures. |
| Bitmask DP (Soon available) | Using bitmasks to represent subsets in DP. |
| Digit DP (Soon available) | Solving problems based on digit positions in numbers. |
| Probability DP (Soon available) | DP for expected value and probability problems. |
| State Machine DP (Soon available) | DP using states and transitions. |
| String Matching (Soon available) | KMP, Rabin-Karp, and other substring search algorithms. |
| Binary Indexed Tree / Segment Tree (Soon available) | Range queries and updates efficiently. |
| Maths / Geometry (Soon available) | Number theory, combinatorics, and geometric algorithms. |
| Line Sweep (Soon available) | Processing events sorted by coordinate for interval problems. |
| Suffix Array (Soon available) | Advanced string processing and pattern matching. |