> Uploading knowledge... _
[░░░░░░░░░░░░░░░░░░░░░░░░] 0%
blog logo
> CHICIO CODING_Pixels. Code. Unplugged.

Data Structures and Algorithms

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.

TopicDescription
Time and Space ComplexityUnderstanding how algorithm performance is measured using Big-O notation and analyzing time-space tradeoffs.
ArraysArrays 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.
StringsStrings are fundamental data types serving as the foundation for text processing, pattern recognition, and encoding/decoding operations.
Bit ManipulationBit 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.
HashtableA 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 PointersThe Two Pointers technique uses two indices to solve array problems in linear time O(n) instead of inefficient O(n²) nested loops.
Prefix SumThe Prefix Sum technique precomputes cumulative information so that range sum queries can be answered in O(1) time.
Sliding WindowThe Sliding Window pattern transforms O(n²) problems into O(n) solutions by maintaining a window over data and adjusting it incrementally.
Kadane's AlgorithmKadane'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 ListA 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.
StackA stack is a fundamental LIFO (Last In, First Out) data structure where the last element added is the first one to be removed.
QueueA queue is a fundamental FIFO (First In, First Out) data structure where the first element added is the first one to be removed.
Bucket sortBucket Sort is a distribution-based sorting algorithm that works by dividing elements into several buckets and then sorting each bucket individually. It is particularly effective for sorting numbers that fall within a bounded range or when sorting elements based on their frequency.
RecursionA deep dive into recursion as a problem-solving technique, with practical TypeScript examples.
Merge SortA deep dive into Merge Sort as a divide-and-conquer algorithm, from array sorting to linked lists and advanced counting problems.
Quick SortAn in-depth look at Quick Sort as a divide-and-conquer algorithm, focusing on partitioning, expected complexity, and selection problems.
Binary SearchBinary search is an efficient algorithm for finding an item from a sorted list of items. It works by repeatedly dividing the search interval in half.
BacktrackingDeep dive into the backtracking technique, a fundamental approach for combinatorial problems, permutation generation, and constraint satisfaction tasks.
Tree Traversals: BFS and DFSComprehensive guide on tree traversal techniques including BFS (level-order) and DFS (pre-, in-, post-order).
Binary Search Tree and Ordered SetDeep dive into Binary Search Trees, Ordered Sets, and their applications in advanced algorithmic problems.
TriesA comprehensive guide to Trie data structures, exploring their implementation, applications, and use cases.
HeapsA heap is a complete binary tree stored as an array that enforces a priority ordering, enabling O(log n) insert and extract operations and powering greedy scheduling and two-heaps patterns.
IntervalsInterval merging, scheduling, and overlap problems. Techniques for efficiently handling ranges, detecting conflicts, and optimizing interval-based tasks.
K-Way MergeLearn how to efficiently merge multiple sorted data sources using heaps, a fundamental pattern behind many advanced problems.
Data Structure DesignData structure design is the art of composing primitive structures into custom abstractions that satisfy complex operational requirements under strict time and space constraints.
Graph Traversal: DFS and BFSA comprehensive guide to graph traversal using Depth-First Search and Breadth-First Search, extending tree traversal techniques to general graphs with cycles, disconnected components, and implicit structures.
Greedy AlgorithmsGreedy algorithms build solutions incrementally by making locally optimal choices at each step, relying on the greedy-choice property and optimal substructure to guarantee global optimality.

Below you can find the list of topics still not available:

TopicDescription
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.