There is no number, and chasing one is how people end up at 400 solved and still frozen at minute four. "Enough" is a test result, not a total, and you can run the test tonight. Pick three mediums you have never seen. On each, take four minutes to name the pattern family out loud, then twenty-five to write code that runs. Clear two of the three and you are ready, whether your profile says 63 solved or 630. Clear none and another fifty problems will not fix it: what you are short of is families covered, not problems closed.
The readiness test, run tonight
It is not a study session. Look nothing up, open no editorials, close every assistant. The value is entirely in what you can retrieve alone.
Pick three genuinely unseen mediums
Use the random problem button and skip every title you recognise. If you have been drilling a curated list, pick from outside it. Recognising a problem you solved in March is not the skill being tested.
Clock one: four minutes to name the family
Read the statement, then say aloud the family, the cue that gave it away, and the complexity you are targeting. Write that line on paper before you touch the keyboard. If minute four passes with no family named, that problem is a fail even if you later solve it.
Clock two: twenty-five minutes to clean code
Clean means typed top to bottom, running after at most one typo fix, and passing two examples you traced by hand before you submit. Not print-statement archaeology, not guessing at an off-by-one until the tests go green, not a pasted template.
Score it, then act on the shape
Two or three passes: stop counting and move your remaining hours to timed mocks and the behavioural round. Exactly one: you have coverage holes, and the two failures just named them. Zero: volume will not help, so rebuild family by family.
The two clocks are not arbitrary. A forty-five minute round budgets roughly five minutes to clarify, five for approach, twenty-five to code, ten for tests and questions. Four to identify and twenty-five to write is that budget with the talking stripped out. Need twelve minutes to see the pattern and you are not slow, you are over budget, and the interviewer starts hinting at minute ten, which quietly moves you from hire to lean hire.
What a solved count is actually buying you
Volume matters, but only as a proxy for exposure, and it is worth different amounts depending on where you started. The bands below are planning estimates. The third column is the one to track.
| Where you are starting | Realistic problem band | The number that actually predicts | Calendar at 8 hrs/week |
|---|---|---|---|
| Rusty Years of shipping, but your last hand-written binary search was at university |
120 to 180 The first 40 buy back syntax, not pattern recognition, so do not count them |
All 12 core families, two or three problems each after the one where you read the solution | 6 to 9 weeks |
| Recent grad Data structures course inside the last 18 months, little timed practice |
60 to 100 The knowledge is there, so extra volume mostly buys speed |
All 12, though five or six will fall in one sitting each | 3 to 5 weeks |
| Daily coder Production code daily, interviewed within the year, recursion is not scary |
40 to 75 Mostly re-warming, not learning |
12, plus tries or bit manipulation only if your target company is known for them | 2 to 4 weeks |
| Career switcher Under a year of programming |
200 to 300 Genuine skill acquisition, not revision |
12, plus a second pass over the early families once recursion clicks | 4 to 6 months |
Two people with 150 solved are not comparable. One has eleven families ticked and a hole where dynamic programming should be. The other has 150 problems across four families and comes apart the moment a graph appears. A count cannot say which one you are. That is the reason for the test above.
The twelve families, and what "covered" actually means
Covered means you solved a fresh problem in that family, unaided, under a clock, in the last three weeks. Not read about. Not solved in February. Tick them honestly.
- Hashing and counting, cue: have I seen this value before, or how many times
- Two pointers, cue: sorted input plus a pair or triple condition
- Sliding window, cue: longest or shortest contiguous run under a constraint
- Prefix sums and running state, cue: repeated range queries, or subarrays summing to k
- Binary search, including on the answer, cue: a monotone yes-or-no test over a numeric range
- Stacks and monotonic stacks, cue: nesting, matching, next greater element
- Linked list pointer work, cue: reverse, detect a cycle, reorder in place
- Tree traversal, DFS and BFS, cue: anything recursive on a node with children
- Graph search, with topological sort and union-find, cue: dependencies, connectivity, fewest hops
- Heaps and top-k, cue: k largest from a stream, or repeatedly pull the smallest
- Sorting, greedy and intervals, cue: overlapping ranges, or a defensible local choice
- Dynamic programming, 1D first then grid, cue: the answer at i is built from a few earlier answers
Eight out of twelve is where most people sit when they say they have done "a lot" of LeetCode. Going from eight to twelve beats going from 150 problems to 250, because the interviewer picks the problem and a hole is a hole. A family that fails the test becomes next week's assignment. For the worked reasoning afterwards, once you have scored yourself, Code Copilot captures the problem with Ctrl+Alt+S and returns the intuition, a dry run and the Big-O, useful at minute 46 and harmful at minute 20.
Why 300 solved can still fail a screen
Four failure modes, none of them cured by volume.
- The list did your recognition for you. Solving under a heading that reads "Sliding Window" tests implementation, not identification. Nobody labels the problem in the round.
- You never finished one whole. A hint peeked at minute fifteen counts as a solve on your profile and a fail in an interview.
- You never said it aloud. A silent correct answer scores below a narrated near-miss, because interviewers grade how you think.
- You padded with easies. Sixty easies and forty mediums reads as a hundred solved and covers a third of a screen.
Where this test lies to you
Three problems is a tiny sample and the difficulty spread inside "medium" is enormous, so a single 3/3 can be luck and a 0/3 can be one brutal draw. Rerun with three fresh problems four days later. Two results that agree is a signal. One is a data point.
It is narrow on purpose, too. It measures coding under time and nothing else: not system design, not SQL, frontend or ML rounds, and not the behavioural half, which is the part you can prepare almost word for word from a list of common interview questions. It ignores narration too, which a human scores, so pair it with two mocks where you talk throughout.
One honest note on tooling, since a vendor publishes this page. OfferPilot AI does not raise your score here, and running the test with the copilot open destroys the measurement. It is Windows 10 and 11 only, no macOS, Linux, mobile or browser build, so for a Mac user the answer here is the test, not the software. Its overlay is excluded from screen capture at the operating-system level, so it stays out of Zoom, Teams, Meet and recordings, which is a claim about screen sharing and nothing else. It does nothing about a webcam, a lockdown browser, a proctor beside you or a phone camera pointed at your desk, and where an assessment forbids outside assistance the honest window for any tool is the weeks before it. The free tier is five minutes a day with no card, and paid plans sit on the pricing page.
The answer, one more time
Ask "how many problems" and you get a number calibrated to somebody else. Ask "can I name the family in four minutes and code it in twenty-five" and you get an answer about you, tonight. Run it, note the families you drew, and let the failures pick next week's study.