# DSA Practice

> A 30-day algorithmic sprint covering the NeetCode roadmap surface area. End able to recognise the pattern from problem shape, implement cleanly, and reason about complexity without slipping.

Canonical: https://learn.significanthobbies.com/curriculum/roadmaps/dsa-practice

A 30-day algorithmic sprint covering the NeetCode roadmap surface area. End able to recognise the pattern from problem shape, implement cleanly, and reason about complexity without slipping.

- Horizon: 30d
- Outcome: Solve canonical patterns from scratch — no references, explain the invariant, add one edge-case test.
- Tracks: DSA & Implementation

Work each milestone as a claim that needs evidence. Predict the mechanism and
failure mode first, study the linked concepts, complete the drills without
copying an answer, and preserve the resulting code, measurements, or design.

## Milestone 1: Days 1-5 — Arrays & strings

The pattern recognition that unlocks 30%+ of interview problems.

### Concepts

- [Recursion & Induction](https://learn.significanthobbies.com/curriculum/concepts/recursion-and-induction) — Writing recursion you can trust, and solving the recurrence it produces.
- [Quickselect](https://learn.significanthobbies.com/curriculum/concepts/quickselect) — Finding the k-th smallest in expected O(n) by recursing into only one partition.
- [Prefix Sums](https://learn.significanthobbies.com/curriculum/concepts/prefix-sums) — Precomputed cumulative arrays that turn repeated range queries into O(1) lookups.
- [Monotonic Stack](https://learn.significanthobbies.com/curriculum/concepts/monotonic-stack) — A stack kept sorted so each element is pushed and popped once, answering next-greater questions in O(n).
- [String Matching](https://learn.significanthobbies.com/curriculum/concepts/string-matching) — Finding a pattern in text in linear time — KMP's failure function and Rabin-Karp's rolling hash.
- [Minimum Spanning Tree](https://learn.significanthobbies.com/curriculum/concepts/minimum-spanning-tree) — Kruskal and Prim — connecting every node at least total cost.
- [Complexity Analysis](https://learn.significanthobbies.com/curriculum/concepts/complexity-analysis) — Big-O, amortised cost, and space complexity — how to argue a bound before writing code.
- [Sorting](https://learn.significanthobbies.com/curriculum/concepts/sorting) — Comparison sorts, stability, in-place versus extra space, and when a linear-time sort is available.
- [Arrays & Hashing](https://learn.significanthobbies.com/curriculum/concepts/array-hashing) — Hash maps, sets, frequency counting.
- [Two Pointers](https://learn.significanthobbies.com/curriculum/concepts/two-pointers) — Converging/diverging pointer scans.
- [Sliding Window](https://learn.significanthobbies.com/curriculum/concepts/sliding-window) — Variable/fixed window over sequences.
- [Intervals](https://learn.significanthobbies.com/curriculum/concepts/intervals) — Merge, overlap, sweep line.



## Milestone 2: Days 6-10 — Linear structures

Stack, linked list, math/geometry — the bread-and-butter scaffolds.

### Concepts

- [Stack](https://learn.significanthobbies.com/curriculum/concepts/stack) — LIFO, parsing, monotonic stack.
- [Linked List](https://learn.significanthobbies.com/curriculum/concepts/linked-list) — Pointer manipulation, fast/slow, reversal.
- [Math & Geometry](https://learn.significanthobbies.com/curriculum/concepts/math-geometry) — Number theory, modular, geometry.



## Milestone 3: Days 11-16 — Trees & heaps

Recursive thinking and priority-queue patterns.

### Concepts

- [Trees](https://learn.significanthobbies.com/curriculum/concepts/trees) — Binary trees, BSTs, DFS/BFS.
- [Trie](https://learn.significanthobbies.com/curriculum/concepts/tries) — Prefix trees.
- [Heap / Priority Queue](https://learn.significanthobbies.com/curriculum/concepts/heap) — Top-k, k-way merge, scheduling.



## Milestone 4: Days 17-21 — Search & greedy

Two of the highest-leverage problem-solving frames.

### Concepts

- [Binary Search](https://learn.significanthobbies.com/curriculum/concepts/binary-search) — Halving sorted search space, predicate search.
- [Greedy](https://learn.significanthobbies.com/curriculum/concepts/greedy) — Local-optimal-as-global proofs.



## Milestone 5: Days 22-27 — Graphs

Traversal, shortest-path, union-find, backtracking — the harder half of any interview.

### Concepts

- [Graphs](https://learn.significanthobbies.com/curriculum/concepts/graphs) — BFS/DFS, topo sort, union-find.
- [Backtracking](https://learn.significanthobbies.com/curriculum/concepts/backtracking) — DFS with state restoration, pruning.
- [Shortest Path](https://learn.significanthobbies.com/curriculum/concepts/shortest-path) — Dijkstra, Bellman-Ford, A*.
- [Union-Find](https://learn.significanthobbies.com/curriculum/concepts/union-find) — Disjoint set, path compression.



## Milestone 6: Days 28-30 — DP & bit tricks

The "hardest" categories — 1D/2D DP and bit manipulation.

### Concepts

- [1D DP](https://learn.significanthobbies.com/curriculum/concepts/dp-1d) — Linear state recurrences.
- [2D DP](https://learn.significanthobbies.com/curriculum/concepts/dp-2d) — Grid DP, edit distance, knapsack.
- [Bit Manipulation](https://learn.significanthobbies.com/curriculum/concepts/bit-manipulation) — Bitwise ops, masks, XOR tricks.
