skip to content

A curated list gives graphs three problems but your target loop is graph-heavy — what do you do?

level: seniorimportance: nice to knowfreq 24%

answer

  1. Ask whose weighting the list encodes
  2. A category is not one mechanism
  3. Enumerate the sub-patterns before counting problems
  4. Map each existing problem onto a sub-pattern
  5. Thin still beats blank somewhere else

basics

~20 s

Treat the list as a baseline map, not a syllabus. Audit its category weights against what the target loop actually asks, then supplement the thin category with problems chosen to span its sub-patterns rather than to raise the total.

solid answer

~50 s

First separate two questions: does the list *cover* graphs, and does it cover them *at the weight this loop needs*? Three problems is enough to meet the technique; it is not enough to span a broad category. So enumerate the sub-patterns the category actually contains — traversal order, connectivity and components, shortest paths with and without weights, cycle detection and ordering of dependencies, union-find on merging groups — and map each of the three problems onto one. The uncovered sub-patterns are the shopping list, and you supplement with two or three problems each, easy before medium, kept as one block so the comparison works. Two constraints keep this honest: don't fund the supplement by leaving another category blank, since a zero anywhere is worse than thinness here; and cap it — you are buying the ability to start on an unseen graph variant, not graph mastery. If time is genuinely short, prefer breadth across the sub-patterns over depth in one of them.

go deeper

for a junior

Be ready to say that a category appearing on a list does not mean it is covered deeply, and that broad categories like graphs contain several distinct techniques.

for a middle

Explain how you would audit coverage: enumerate a category's sub-patterns yourself, map the list's problems onto them, and treat the unmapped sub-patterns as the supplement.

for a senior

Demonstrate the allocation judgment — refine where your specific loop is heavy, but never fund that depth from a category still at zero, and cap the depth once you can start cold on an unseen variant.

for a principal

Own this as advice you give others under a deadline: run the audit with them so they can repeat it, and be ready to argue against the switch-to-a-bigger-list instinct, which spends most of the remaining time re-covering what already passed.

## What a category weight in a curated list means Curated lists are compressed by construction. Their authors sampled a large corpus and picked a few representatives per category, weighting roughly by how often each category appeared across a general population of interview loops. That weighting is a reasonable prior and it is not your posterior. If you know the loop you are preparing for leans heavily on one category — because of the domain, the team, published interview accounts, or a recruiter's own description of the rounds — the list's general-purpose weights are the wrong weights for you. So the skill is reading the list as a map with an explicit scale, noticing where the scale is coarse for your purposes, and refining exactly there. ## Coverage is not one thing: categories contain sub-patterns The reason three problems can genuinely cover one category and badly under-cover another is that categories differ enormously in internal variety. A narrow category may have a single mechanism with small variations; two problems really do span it. A broad one — graphs is the standard example, dynamic programming another — is a family of related but distinct mechanisms. For graphs the sub-patterns include, at minimum: exploring depth-first versus level-by-level and what each gives you, connected components and reachability, shortest paths in unweighted graphs versus weighted ones with non-negative weights, detecting cycles, ordering nodes so dependencies come first, merging groups incrementally, and the recurring trick that the graph is *implicit* — nodes are states and edges are legal moves, with no edge list anywhere in the statement. A three-problem sample cannot touch all of that. It will typically hit traversal, maybe components, and leave the rest blank. So the audit is not "is the category present" but "which sub-patterns did these three problems actually instantiate". ## Running the audit The procedure is mechanical and takes under an hour: 1. **Write down the sub-patterns** of the category from your own knowledge, not from the list. If you cannot enumerate them, that is itself the finding — you do not yet know the category well enough to judge its coverage, and the first supplement is learning its structure. 2. **Map each list problem onto a sub-pattern.** Some will map to two; some sub-patterns will get nothing. 3. **Rank the uncovered ones by likelihood for this loop.** Not all gaps deserve equal funding. Dependency ordering and shortest paths come up far more than exotic sub-patterns. 4. **Supplement two to three problems per gap**, easy before medium, and keep them together as a block so the within-category comparison that builds the pattern actually happens. 5. **Re-run your recall check on the whole category afterwards**, including the original three, since the goal is a category you can enter cold — not a longer list of solved rows. ## The constraints that keep the supplement honest Supplementing is a reallocation, and the time comes from somewhere. Three rules bound it: **Never fund depth from a blank category.** A thin category still gives you a starting move on an unseen problem; a blank one gives you nothing. If some category on the map is still at zero, it outranks the seventh graph problem, even for a graph-heavy loop — because loops are not homogeneous and one round will not be about the specialty. **Cap the depth.** The goal is being able to start confidently on an unseen variant, not exhaustive mastery. There is always another sub-case. Past roughly the point where you can name the sub-pattern and sketch the approach, further problems in the same sub-pattern buy very little. **Prefer breadth across sub-patterns over depth within one.** When time is short, one problem in each of four uncovered sub-patterns beats four problems in one of them, for the same reason breadth-first beats count-maximizing at the category level: the failure that ends a round is having no move, not having a slightly rusty move. ## When advising someone else The same audit is the most useful thing you can do for a person who is preparing and feels stuck. They usually arrive with a list and a completion percentage. Ask which sub-patterns of their heaviest category they can name, and the gap becomes visible in a couple of minutes — to them, not just to you, which is what makes them able to run the audit again themselves later. The most common mistake to talk them out of is switching lists. A larger list feels like the answer to "my list is thin here", and it usually is not: larger lists add breadth across categories they have already covered while giving the thin category a few more problems chosen by a general-purpose prior rather than by their specific gap. Targeted supplementation, chosen against an explicit sub-pattern map, is cheaper and lands where the deficit actually is.

  • Wouldn't switching to a larger curated list solve the thin coverage more simply?
    Rarely. A larger list adds problems across categories you have already covered and still weights the thin category by a general-purpose prior, not by your specific gap. You pay for a lot of re-covering to buy a few more problems that may land on sub-patterns you already have. Targeted supplementation against an explicit sub-pattern map is cheaper and lands where the deficit is.
  • How do you decide when to stop supplementing a category?
    When you can name each of its major sub-patterns and sketch an approach for one cold. Past that, extra problems in the same sub-pattern buy little, and the time is better spent on a category still sitting near zero. The goal is a confident start on an unseen variant, not exhaustive mastery — there is always another sub-case.
  • You are advising someone stuck at 80 percent of their list. What is the first thing you ask?
    Which sub-patterns of their heaviest category they can name from memory. If they cannot enumerate them, the gap is visible immediately and the fix is structural rather than more volume. Asking it as a question rather than telling them the answer also leaves them able to re-run the audit themselves after your conversation ends.

A general-purpose map shows every district at the same scale; if your route runs through one of them, you refine that district rather than buying a bigger map of the whole city.

saying these in an interview costs you the question

  • The category is on the list, so it is covered
  • Switching to a bigger list fixes thin coverage
  • Supplementing means raising the total problem count
  • Deepen the specialty even if another category is empty
  • One curated list weighting fits every target loop

context