THN Interview Prep

Topics — Problem Mind-Maps

Each subdirectory is one LeetCode-style grouping (arrays-hashing, graphs, dp-1d, …). Inside every problems/ folder you get one markdown file per curated question, named NNN-kebab-title.md.

Concept layer vs problem layer

  • Topic index pages (e.g. Arrays & Hashing, Sliding Window) explain the idea and when it applies.
  • Pattern cards under Patterns are the recognition layer — cues, invariants, and recipes across companies.
  • Individual problem files add full mind-maps: variants, diagrams, solution stories, and senior interview framing.

If you are stuck on why a technique works, stay on the topic index or pattern page until the invariant clicks; only then drill the problem write-ups.

Suggested first pass (concepts before volume)

One possible order that builds dependencies clearly:

  1. Arrays & Hashing — indexing, frequency, trade space for time.
  2. Two Pointers and Sliding Window — linear scans with invariants.
  3. Stack — deferred work and monotonic variants.
  4. Linked List and Fast & Slow in Patterns — pointer discipline.
  5. Binary Search — monotonic predicates and “search on answer”.
  6. Trees, then graphs in the broader topic tree — BFS vs DFS tradeoffs.
  7. Heap / Priority Queue — “next best” without full sorting.
  8. Dynamic programming and graph topics as your map widens (see Roadmap).

You can deviate anytime; the goal is to reuse the same mental models instead of memorizing isolated tricks.

All topics

TopicFocus
Advanced graphsWeighted paths, Dijkstra, MST, advanced traversals
Arrays & hashingIndexing, frequency maps, prefix tricks
BacktrackingChoice trees, pruning, state restore
Binary searchMonotonic predicates, search on answer
Bit manipulationMasks, XOR, shifts, carry logic
DP (1D)Linear state, tabulation, rolling variables
DP (2D)Grid and sequence DP, path counting
GraphsBFS, DFS, components, shortest paths
GreedyLocal choices with exchange arguments
Heap / priority queueTop-k, scheduling, streaming order
IntervalsOverlap, merge, sweep-line reasoning
Linked listPointer rewiring, cycle detection
Math & geometryGCD, primes, coordinates, formulas
Sliding windowFixed and variable windows with invariants
StackMonotonic stacks, deferred work
System design codingOOD-style coding interview problems
TreesTraversals, BST rules, recursion returns
TriesPrefix trees, autocomplete, word search
Two pointersSorted scans, opposite ends, partitioning

Layout

topics/<topic>/problems/NNN-title.md

Canonical duplicates

Some numbers appear in multiple rows of the Problem index; only one on-disk file exists:

NumberCanonical folder
152Maximum Product Subarray (LeetCode 152)
121, 53, 7, …See the index note — follow the path in the index, not a second copy.

Validation

From the repository root:

npm run docs:check-dsa

Checks DSA frontmatter and internal .md / .mdx links. After editing canonical source files under content/core-docs/dsa, run:

npm run docs:sync-dsa

This normalizes the source tree and syncs it to content/docs/dsa.

See also: Problem mind-map template, Similar problems map, and Docs visual enrichment workflow.

Mark this page when you finish learning it.

Last updated on

Spotted something unclear or wrong on this page?

On this page