This repository is a Work in Progress.
Track-first workflow for interview prep. Organize your practice into curated “tracks,” solve problems, and watch your progress update automatically in the README.
This repo ships with predefined tracks you can use out of the box, and you can also create your own. See Tracks to view progress, copy built-in tracks, and build custom ones.
All problems live under problems/
. Each problem folder contains the description, solution(s), reasoning, and progress stats. Example: problems/0169-majority-element/readme.md
.
Tracks are curated problem lists that drive your learning plan and progress tracking.
- Define tracks in
tracks/*.yaml
(custom or copied from predefined ones in archive folder). - Generate per-track reports and the README table from your problem stats.
- “Done” is counted from each problem’s
stats.json
(optimal_solution: true
).
Current tracks and progress:
Track | Main | Ext | Total | Done | Progress | Linked | Unlinked |
---|---|---|---|---|---|---|---|
Foundations — Arrays, Hashing, Two-Pointers, Prefix, Stack | 17 | 8 | 25 | 7 | 28% | 25 | 0 |
Sliding Window — Fixed and Dynamic | 12 | 6 | 18 | 0 | 0% | 16 | 2 |
Two Pointers — Advanced and In‑Place Transforms | 12 | 8 | 20 | 3 | 15% | 20 | 0 |
Binary Search — Predicates, Partitions, and Heaps | 12 | 6 | 18 | 0 | 0% | 18 | 0 |
Intervals — Sorting, Merging, and Greedy Scheduling | 12 | 10 | 22 | 0 | 0% | 22 | 0 |
NeetCode 250 — Arrays & Hashing | 22 | 0 | 22 | 2 | 9% | 22 | 0 |
NeetCode 250 — Two Pointers | 13 | 0 | 13 | 10 | 77% | 13 | 0 |
NeetCode 250 — Sliding Window | 9 | 0 | 9 | 0 | 0% | 9 | 0 |
NeetCode 250 — Stack | 15 | 0 | 15 | 0 | 0% | 15 | 0 |
NeetCode 250 — Binary Search | 14 | 0 | 14 | 0 | 0% | 14 | 0 |
Manage tracks in
tracks/*.yaml
. Generate reports and update this table withmake markdown
(or run the full pipeline withmake build
).
- Create or update problems under
problems/NNNN-slug/
. - Mark progress in
stats.json
(setoptimal_solution: true
when you’ve reached your target solution). - Generate per-track reports and update the README progress table:
make tracks-report
→ updatestracks/*.md
make tracks-table
→ refreshes the table in this READMEmake markdown
→ runs both
Predefined track blueprints live in archive/
(e.g., sliding window, two-pointers advanced, binary search & heaps, intervals, DP, graphs, trees, etc.). To use one:
-
Copy a YAML into
tracks/
(keep the name or rename):cp archive/track_1_sliding_window.yaml tracks/
-
Generate reports and update progress:
make markdown
You’ll get a tracks/track_1_sliding_window.md
report and an updated table here.