DSA & Problem Solving
A free, account-free study system for data structures, algorithms, and interview preparation. Every algorithm runs step by step in your browser, with C++ and JavaScript solutions side by side.
Start here, not with problem #1
If pyramid patterns are hard and tree traversal is hard, that is one gap, not two. Both are the same skill: holding evolving program state in your head. Week 0 fixes that before any LeetCode problem gets touched — because doing the 150 without it is how you end up having "done" a list you can't reproduce.
Available now
23 of 50 units written. This grows one week at a time.
The 12-week plan
One pattern per week, because the fourth sliding-window problem takes a fraction of the time the first did. 46 problems written up so far.
| Week | Focus |
|---|---|
| 0 | Foundations & scaffolding |
| 1 | Arrays, Hashing, Two Pointers |
| 2 | Sliding Window, Prefix Sum |
| 3 | Stack & Monotonic Stack |
| 4 | Binary Search & Sorting |
| 5 | Linked Lists |
| 6 | Trees I — traversal |
| 7 | BST, Trie, Heap |
| 8 | Backtracking |
| 9 | Graphs |
| 10 | Greedy, 1-D DP, Kadane |
| 11 | 2-D DP, Intervals, Matrix |
| 12 | Bit, Math, Mock interviews |
How this is built
Every algorithm here is instrumented rather than animated: the JavaScript implementation is a generator that yields a snapshot of its own state at each interesting step, and a small set of renderers draws those snapshots. That's why the same player works for an array walk, a recursion tree, and a pyramid loop — and why stepping backwards works.
The C++ pane is line-for-line equivalent and never executed in the browser; both panes carry the same step markers, so the highlighted line follows you when you switch language tabs.
Progress lives in localStorage — no account, nothing uploaded, exportable as
JSON. Same promise as the rest of ASAPUtils.