Stage 1 · Code
Mastering Data Structures & Algorithms for Software Engineering Interviews
A comprehensive, interview-focused Data Structures & Algorithms course designed to build strong problem-solving skills from first principles. Learn how top technology companies approach coding interviews through structured lessons, visual explanations, and hands-on problem solving using Go.
Prerequisite
Programming Foundations.
What this course leaves you with
- Reason about complexity on sight
- Implement core data structures from scratch
- Clear hard algorithmic interviews
Why this stage matters — You know the structures — drill the recurring patterns until they click.
Progress
0 of 92 lessons complete. Progress is stored locally in your browser so you can pick the path back up later.
course completion
Programming Foundations
Variables, pointers, functions, recursion, and complexity analysis fundamentals.
- 01Variables & MemoryHow Go stores data in memory: stack vs heap, value types.5 min
- 02PointersPointer mechanics, dereferencing, and when to use them in Go.6 min
- 03FunctionsFunction signatures, variadic args, closures, and first-class functions.5 min
- 04RecursionRecursive thinking, base cases, call stack, and tail recursion.7 min
- 05Time & Space ComplexityBig-O notation, best/average/worst case, and complexity classes.6 min
- 06Problem Solving MindsetApproaching problems systematically: understand, plan, code, test.5 min
Arrays & Strings
Array manipulation, string algorithms, prefix sums, sliding window, two pointers, binary search, sorting, hashing, and matrix problems.
- 01ArraysArray fundamentals, slicing, and common patterns in Go.5 min
- 02StringsBytes, runes, UTF-8, and string manipulation techniques.5 min
- 03Prefix SumPrecomputing prefix sums for O(1) range queries.6 min
- 04Sliding WindowFixed and variable-size windows for subarray/substring problems.7 min
- 05Two PointersOpposite, same-direction, and fast-slow pointer techniques.6 min
- 06Binary SearchBinary search on arrays, answer space, and rotated arrays.7 min
- 07Sorting TechniquesComparison sorts, non-comparison sorts, and Go's sort package.6 min
- 08HashingHash maps, sets, and frequency counting patterns.6 min
- 09Matrix Problems2D array traversal, rotation, and DP on matrices.7 min
Linked Lists
Singly, doubly, and circular linked lists with fast/slow pointers, cycle detection, merging, and LRU cache implementation.
- 01Singly Linked ListNode structure, insertion, deletion, and traversal.5 min
- 02Doubly Linked ListBidirectional traversal with prev/next pointers.5 min
- 03Circular Linked ListLists where tail connects to head for circular iteration.5 min
- 04Reverse ListIterative and recursive list reversal techniques.6 min
- 05Fast & Slow PointerFinding middle, cycle detection, and cycle start node.7 min
- 06Merge ListsMerging two sorted lists and k sorted lists efficiently.6 min
- 07LRU CacheDesigning LRU cache with hash map + doubly linked list.7 min
Stacks & Queues
Stack, queue, deque implementations with monotonic stacks/queues, parentheses, expression evaluation, and next greater element.
- 01StackLIFO operations, array vs linked list implementation.5 min
- 02QueueFIFO operations, circular queue, and Go's channel-based queues.5 min
- 03DequeDouble-ended queue for sliding window max/min problems.5 min
- 04Monotonic StackMaintaining sorted stacks for next greater/smaller elements.7 min
- 05Monotonic QueueSliding window maximum with deque in O(n).7 min
- 06Parentheses ProblemsValid parentheses, longest valid, and score of parentheses.6 min
- 07Expression EvaluationInfix to postfix, evaluating RPN, calculator problems.7 min
- 08Next Greater ElementFinding next greater element in arrays and circular arrays.6 min
Trees
Binary trees, BSTs, DFS/BFS traversals, LCA, tree diameter, balanced trees, and AVL tree implementation.
- 01Binary TreesTree structure, node representation, and basic properties.5 min
- 02Binary Search TreesBST property, insertion, deletion, and search operations.6 min
- 03DFSPreorder, inorder, postorder traversals recursively and iteratively.6 min
- 04BFSLevel-order traversal, level averages, and right side view.6 min
- 05Tree TraversalsMorris traversal, iterator pattern, and serialization.7 min
- 06Lowest Common AncestorLCA in BST and binary trees with parent pointers.6 min
- 07Tree DiameterLongest path between any two nodes using two BFS/DFS.6 min
- 08Balanced TreesHeight balance, rotations, and AVL tree fundamentals.7 min
- 09AVL TreesSelf-balancing BST with rotations and height maintenance.8 min
Heaps & Priority Queues
Min/max heaps, priority queues, top K elements, merging K sorted lists, and running median.
- 01Min HeapHeap property, array representation, and heapify operations.5 min
- 02Max HeapMax heap implementation and applications in Go.5 min
- 03Priority QueuePriority queue using heap, custom comparators in Go.6 min
- 04Top K ElementsFinding K largest/smallest with min/max heap tradeoffs.6 min
- 05Merge K Sorted ListsOptimal merge using min heap vs divide and conquer.7 min
- 06Running MedianTwo-heap approach for streaming median calculation.7 min
Graph Algorithms
Graph representations, BFS/DFS, topological sort, Union-Find, shortest paths (Dijkstra, Bellman-Ford, Floyd-Warshall), MST, and SCC.
- 01Graph RepresentationAdjacency matrix, adjacency list, and edge list in Go.5 min
- 02BFSBreadth-first search, shortest path in unweighted graphs.6 min
- 03DFSDepth-first search, cycle detection, and topological ordering.6 min
- 04Topological SortKahn's algorithm and DFS-based ordering for DAGs.6 min
- 05Union FindDisjoint Set Union with path compression and union by rank.7 min
- 06DijkstraSingle-source shortest paths with non-negative weights.7 min
- 07Bellman FordShortest paths with negative weights and cycle detection.7 min
- 08Floyd WarshallAll-pairs shortest paths in O(V^3) with path reconstruction.7 min
- 09Minimum Spanning TreeKruskal and Prim algorithms for MST construction.7 min
- 10Strongly Connected ComponentsKosaraju and Tarjan algorithms for SCC decomposition.8 min
Greedy Algorithms
Activity selection, interval scheduling, jump game, gas station, and Huffman coding with greedy choice proofs.
- 01Activity SelectionMaximum non-overlapping intervals with earliest finish time.5 min
- 02Interval SchedulingWeighted and unweighted interval scheduling variants.6 min
- 03Jump GameCan you reach the end? Minimum jumps with greedy approach.6 min
- 04Gas StationCircuit completion with gas/cost arrays using greedy insight.6 min
- 05Huffman CodingOptimal prefix codes with priority queue and greedy merge.7 min
- 06Greedy ProofsExchange argument, greedy stays ahead, and matroid theory.7 min
Backtracking
Subsets, permutations, combinations, N-Queens, Sudoku solver, and Word Search with pruning and state management.
- 01SubsetsGenerate all subsets using backtracking and bit manipulation.5 min
- 02PermutationsAll permutations with and without duplicates.6 min
- 03CombinationsCombinations of k from n, combination sum variants.6 min
- 04N QueensPlace N queens on NxN board with column/diagonal tracking.7 min
- 05Sudoku SolverConstraint propagation and backtracking for 9x9 Sudoku.8 min
- 06Word SearchFind word in 2D grid with DFS and board marking.6 min
Dynamic Programming
Memoization, tabulation, Fibonacci, Knapsack, Coin Change, LCS, LIS, Grid DP, Tree DP, and Bitmask DP patterns.
- 01MemoizationTop-down DP with caching, recursion tree optimization.6 min
- 02TabulationBottom-up DP, table filling order, and space optimization.6 min
- 03FibonacciClassic DP intro: recursive, memoized, tabulated, O(1) space.5 min
- 04Knapsack0/1 Knapsack, unbounded knapsack, and space-optimized solutions.7 min
- 05Coin ChangeMinimum coins for amount, number of ways variants.6 min
- 06Longest Common SubsequenceLCS length, reconstruction, and edit distance variant.7 min
- 07Longest Increasing SubsequenceO(n^2) DP and O(n log n) patience sorting approach.7 min
- 08Grid DPUnique paths, minimum path sum, cherry pickup on grids.7 min
- 09Tree DPDP on trees: diameter, max path sum, house robber III.7 min
- 10Bitmask DPTSP, assignment problems, and state compression with bitmasks.8 min
Advanced Data Structures
Trie, Segment Tree, Fenwick Tree, Sparse Table, DSU, Bloom Filter, Skip List, Red-Black Tree, and B-Tree implementations.
- 01TriePrefix tree for autocomplete, spell check, and IP routing.6 min
- 02Segment TreeRange queries and point updates with lazy propagation.8 min
- 03Fenwick TreeBinary Indexed Tree for prefix sums and range queries.6 min
- 04Sparse TableO(1) RMQ with O(n log n) preprocessing for static arrays.6 min
- 05Disjoint Set UnionUnion-Find with path compression and union by rank/size.6 min
- 06Bloom FilterProbabilistic set membership with space efficiency.5 min
- 07Skip ListProbabilistic balanced search structure alternative to BST.7 min
- 08Red Black TreeSelf-balancing BST with color properties and rotations.8 min
- 09B-TreeMulti-way tree for disk-based storage and databases.8 min
Interview Preparation
FAANG coding patterns, mock interviews, whiteboard problem solving, complexity analysis, optimization techniques, and communication strategies.
- 01FAANG Coding PatternsCommon patterns: sliding window, two pointers, DFS/BFS, backtracking, DP, greedy, monotonic stack.7 min
- 02Mock InterviewsSimulated interview sessions with feedback and rubric scoring.10 min
- 03Whiteboard Problem SolvingWriting clean code on whiteboard, edge case handling, thinking aloud.7 min
- 04Complexity AnalysisTime/space analysis, amortized analysis, and explaining trade-offs.6 min
- 05Optimization TechniquesFrom brute force to optimal: step-by-step improvement strategies.7 min
- 06Communication StrategiesClarifying questions, explaining approach, handling hints, and follow-up.6 min