L65 · Final Audit + Maintenance Plan
Re-audit every pattern, compare against L59, and build the ongoing three-times-a-week loop that stops the whole thing decaying the moment the track ends.
🎯 Re-run the pattern sweep, compare honestly against the L59 baseline, and leave with a written three-times-a-week maintenance loop that survives the end of the track.
Series: LeetCode — From Basics to Interview-Ready · Session 65 / 65 · Phase 4 · Interview simulation
Watch first
The last pre-reads in the track. These are not for learning — they are for calibration, so that the honest assessment at the end of this session is measured against something real rather than against your own memory of how sessions felt.
Why this session exists
Skills decay. That is not a motivational framing, it is the operative fact of this session: the pattern coverage you have right now is a perishable asset, and without deliberate maintenance it degrades faster than anyone expects. People who complete a structured track and then stop entirely find, two months later, that the templates they could produce blind are gone — not weakened, gone — and they have to redo a meaningful fraction of the work.
Leaving with a maintenance plan is what makes this stick. It is the difference between having done sixty-five sessions and having the capability those sessions were meant to produce.
The session has two halves. The first is measurement: re-run the L59 sweep and compare, which is the only honest answer to "did this work". The second is design: build a loop small enough that you will actually run it. That second constraint is the binding one — a maintenance plan requiring an hour a day is a plan you will abandon in week two, and an abandoned plan preserves nothing.
Blank-file warm-up
All templates, blind. This is the full retrieval test and it is the most demanding warm-up in the track.
Fifteen minutes, no notes. Write the skeleton — not a full solution, just the skeleton — for every pattern you can retrieve. Two pointers, sliding window, binary search on the answer, monotonic stack, BFS, DFS, topological sort, union-find, backtracking, the DP progressions, heap top-K, Dijkstra, trie, and whatever else the track covered.
Count how many arrive without hesitation. That number is your headline metric and it is what you compare at the next audit.
Do not stop to fix the ones that come out wrong. Mark them and move on — the fixing is what the maintenance loop is for, and stopping to repair here eats the measurement.
Pattern anatomy
The pattern is the maintenance loop — a small, fixed, repeating schedule sized to be sustainable rather than optimal.
The invariant: the loop must be small enough that you run it on a bad week. Every maintenance plan that has ever been abandoned was abandoned because it was designed for a good week. Design for the worst realistic week and the plan survives; design for your best day and it does not.
# THE 3x/WEEK MAINTENANCE LOOP — about 90 minutes per week total.
#
# SESSION A (30 min) — SPACED REVIEW
# Whatever the queue says is due today. Nothing else.
# If nothing is due, write two random templates blind and stop early.
# This is the load-bearing session; the other two are optional in a bad week.
#
# SESSION B (30 min) — ONE UNSEEN MEDIUM, TIMED
# Cold, 20 minutes on the clock, 10 minutes of review.
# Purpose is classification speed, not solve count. Log time-to-pattern-name.
#
# SESSION C (30 min) — ONE WEAK-PATTERN REBUILD
# The L60 loop, compressed: re-derive the template, one problem, cue card.
# Target whatever sits at the bottom of the most recent audit.
#
# QUARTERLY (75 min) — FULL RE-AUDIT
# Re-run the L59 sweep. Compare against the previous table. Rebuild the weak list.
# Non-negotiable: without it the loop drifts toward whatever is comfortable.
#
# PRE-INTERVIEW (2 weeks out) — TEMPORARY INTENSIFICATION
# Daily: one timed Medium + spaced review.
# Twice in the fortnight: a recorded narrated mock (L58 protocol).
# Once: a contest or virtual contest (L64).
# Then back to the 3x/week loop afterwards. Intensity is temporary; the loop is not.Ninety minutes a week. That is the whole plan, and its smallness is a feature rather than a compromise.
The cue
You need to re-enter maintenance mode — or intensify — when:
- A blind template comes out wrong that used to come out clean. The earliest and most reliable decay signal, which is why the blank-file warm-up stays in the loop permanently.
- Time-to-pattern-name has crept up. If you are logging it in session B, you will see this before you feel it.
- You have not run a timed problem in two weeks. Speed decays faster than knowledge; you will still recognise the pattern and take twice as long to execute.
- Interviews are two weeks out. Switch to the intensification block, then return to the loop.
- The quarterly audit shows more than three patterns below
warm. That is drift, and the response is a few L60 rebuild sessions, not a general increase in volume.
Guided solve
Part one: the re-audit (40 minutes).
Re-run the L59 sweep. Same protocol — sixty seconds per problem, classify rather than solve, no editorial. Use the same list so the comparison is meaningful; swapping lists makes the delta uninterpretable.
Then put the two tables side by side and compute three numbers.
Number one: how many rows improved a level? This is the headline. If failed rows moved to warm and warm rows to cold, the last six sessions did what they were supposed to. If the distribution is unchanged, the repair loops were not doing repair — most likely they were re-reading rather than re-deriving.
Number two: how many rows regressed? Some will have. Regression is normal and it is information about decay rate, which is exactly what the maintenance loop needs to be calibrated against. If many cold rows dropped to warm, your intervals are too long and the ladder needs shortening.
Number three: is the weak list the same three patterns? If yes, and they were the target of L60, then the rebuild loop did not take on those patterns specifically, and they need a different approach — usually going back to the original session for the underlying concept, because a persistent retrieval failure after a proper rebuild is normally a comprehension gap wearing a memory costume.
Part two: write the plan (20 minutes).
Not "I'll practise regularly". Written, specific, with days and times attached.
Fill in these fields concretely:
- Which three days. Actual weekday names. Attach them to something that already happens — before your first meeting, after the gym, whatever is already stable. Habits attach to existing structure far better than to intentions.
- How long. Thirty minutes each. Resist making it sixty; you will run thirty on a bad week and skip sixty entirely.
- Where the queue lives. The spaced-repetition table needs to be somewhere you already open daily, or it will not be checked.
- What the quarterly audit date is. Put an actual date in an actual calendar, now, during this session.
- What triggers intensification. Write the specific condition, for example "when an interview is scheduled within three weeks".
Part three: the honest assessment (15 minutes).
Write down, plainly, where you are. Not a rating out of ten — specific statements.
Something in the shape of: which patterns are reliably retrievable, which are not, what your realistic time is on an unseen Medium, whether narration held up under pressure in L61, and what would most likely go wrong in a real loop next week.
That last question is the one worth sitting with. The honest answer is usually not "I don't know enough patterns" — after sixty-five sessions it rarely is. It is more often speed, or communication collapsing under difficulty, or the specific weak pattern that has survived every attempt to fix it. Naming it correctly is what makes the next month's work targeted.
Solo timed
The re-audit sweep is the timed block: seventy-five problems, sixty seconds each, same rules as L59.
Two additions specific to this final pass:
- Log the delta as you go. Put the L59 status in a column next to today's. Seeing a row that was
failedcome backcoldis genuinely useful feedback in the moment, and seeing the reverse tells you something immediately actionable. - Flag anything that regressed two levels.
colddown tohintis unusual and typically means the originalcoldwas generous rather than that the decay was fast. Those rows tell you how honest your marking is, which affects how much you should trust the whole table.
Timing rubric — running today's session
| Block | Budget | Output |
|---|---|---|
| Blind template sweep | 15 min | A count — how many skeletons arrived without hesitation |
| Re-audit sweep | 40 min | The full table with an L59-status column beside today's |
| Delta computation | 10 min | Three numbers: improved, regressed, weak list unchanged? |
| Write the plan | 20 min | Named days, named times, queue location, calendar dates |
| Honest assessment | 15 min | Five plain sentences, no ratings |
Runs to a hundred minutes rather than seventy-five. That is deliberate and it is the last time; do not compress the plan or the assessment to fit, because those are the two parts you carry forward.
Self-scoring — the exit assessment
Six dimensions, 0–3 each, out of 18. This is your baseline for every future quarterly audit, so mark it honestly — a generous mark today makes every future comparison meaningless.
- Pattern coverage. 3 = 20+ templates blind without hesitation. 2 = 15–19. 1 = 10–14. 0 = under 10.
- Classification speed. 3 = names the pattern on an unseen Medium in under 90 seconds. 2 = under 3 min. 1 = under 6 min. 0 = often never.
- Implementation speed. 3 = unseen Medium coded and correct in under 20 min. 2 = under 30. 1 = under 45. 0 = usually incomplete.
- Hard decomposition. 3 = finds the seam on most decomposable Hards unaided. 2 = finds it with one probe prompted. 1 = writes a brute force and stalls. 0 = no brute force.
- Communication. 3 = continuous narration that survives the difficult stretch. 2 = narrates when comfortable, quiet when stuck. 1 = narrates only when asked. 0 = mostly silent.
- Composure. 3 = careless-error rate under time pressure roughly matches untimed. 2 = mildly worse. 1 = markedly worse. 0 = falls apart.
14–18 — loop-ready. Your two-week pre-interview block is polish, not repair. 9–13 — the typical honest exit score for this track; you are interviewable and you have a named weak dimension to work. Below 9 — do not conclude the track failed; look at which dimensions are low. Low communication and composure with high coverage is a very different problem from the reverse, and only the first is fixable in two weeks.
Write the six numbers down with today's date. At the next quarterly audit you will re-score, and the trend across the six is the thing that tells you whether the maintenance loop is doing its job.
The two-week pre-onsite block
When a loop gets scheduled, you leave the maintenance cadence and run this instead. It is intensification, not new material — nothing here teaches you anything you do not already have.
Day 14–12 · Target and measure. Re-run the L59 sweep filtered to the patterns that company is known for (L62 approach). Do not study yet. You are producing a ranked repair list against a two-week budget, and studying before measuring wastes the scarcest resource you have.
Day 11–9 · Repair. Three L60 rebuild loops, one per day, on the top three from the filtered list. Each ends with the interleaved cold re-test. Nothing else on these days.
Day 8–7 · Company staples. Work the frequency list top-down, skipping anything you are already fluent at. Two timed problems per day in the target company's delivery style — narrate for Amazon-style, invite the extension for Microsoft-style.
Day 6 · Recorded mock. Full 45-minute L58 protocol, recorded, unseen Medium. Watch it back the same evening. Pick exactly one communication habit to fix; more than one and you fix none.
Day 5 · Hard practice. One unseen Hard on the L61 protocol. The goal is not solving it. The goal is rehearsing the position statement at minute 40 so that landing on a Hard in the real loop is a familiar situation rather than a novel one.
Day 4 · Second recorded mock. Same protocol, checking whether the one habit from day 6 held. If it did not, it needs a mechanical fix rather than more intention — for example, a sticky note on the monitor edge reading "say what you are doing".
Day 3 · Contest or virtual contest. The L64 protocol. This is your last adrenaline rehearsal and its purpose is to find out what pressure still breaks, while there is a day left to account for it.
Day 2 · Light review only. Blind template sweep, spaced-queue items that are due, nothing new. Do not attempt an unfamiliar Hard the day before — a failure here costs you confidence and buys you nothing.
Day 1 · Rest. Two easy problems in the morning to keep the hands warm, then stop. Re-read your cue cards once. Sleep is worth more than a marginal pattern at this point, and this is not a platitude — the composure dimension in the scorecard above is the one most affected by being tired.
The morning of. One Easy you have solved before, out loud, to absorb the cold-start penalty somewhere harmless. Recite the delivery cue for that company. Then close the laptop.
The day 14–12 measurement step is the one people skip, and skipping it means spending a two-week budget on whatever felt most urgent rather than on what is actually weakest against that specific company's distribution.
Common failure modes
Not doing the re-audit at all. Ending the track with a plan and no measurement means you never find out whether the last six sessions worked, and you carry an unvalidated belief about your own coverage into real interviews.
Making the maintenance plan too ambitious. An hour a day is not a maintenance plan, it is a second track, and you will abandon it. Ninety minutes a week is sustainable, and a sustainable plan you actually run beats an optimal plan you do not.
Not attaching the plan to specific days. "Three times a week" without named days becomes zero times a week within a fortnight. Name the days and attach them to existing routine.
Skipping the quarterly audit once the loop is running. Without it the loop drifts toward whatever is comfortable, which is by definition your strong patterns, and the weak list silently regrows.
Marking generously on the final sweep because you want to see improvement. This is a real pull at the end of a long track and it produces a table that flatters you and helps nobody. When torn, take the worse status — the same rule as L59.
Treating the end of the track as the end of the work. The capability is conditional on maintenance. That is the single most important thing to carry out of this session.
- 1Motor and retrieval skills decay without rehearsal, and the decay is exponential rather than linear.
- 2Because decay is exponential, the cost of maintaining a skill is far lower than the cost of rebuilding it after a lapse.
- 3Because maintenance is cheap only when it is frequent and small, a large infrequent effort is both more costly and less effective than a small regular one.
- 4Because a plan is only effective if executed, its design constraint is sustainability on a bad week rather than optimality on a good one.
- 5Because unmeasured maintenance drifts toward whatever is comfortable, the loop needs a periodic external check — the quarterly re-audit.
- 6Therefore ninety minutes a week plus a quarterly audit dominates any intensive-then-abandoned schedule — and the testable prediction is that at the next quarterly audit, someone running this loop shows fewer regressed rows than they would after an equivalent number of total hours spent in occasional long bursts.
Complexity
Session budget: 15 min blind template sweep, 40 min re-audit, 20 min writing the plan. The honest-assessment part runs over and that is fine — it is the last session.
Ongoing cost: 90 minutes per week, three sessions of thirty. Roughly 1% of waking hours.
Quarterly audit: 75 minutes, four times a year. Five hours annually.
Total annual maintenance: about 80 hours, against roughly the same figure for the sixty-five sessions of the track itself. Maintaining costs about the same per year as building did once — which sounds like a lot until you compare it to rebuilding from decay, which costs the full amount again and produces nothing new.
Pre-interview intensification: two weeks at roughly double the loop, then back down. Temporary by design.
Recovery scripts — for the plan, not the interview
The scripts in earlier sessions were for a stalled solve. These are for a stalled plan, which is the failure mode that actually ends most people's capability.
You missed a week. Do not restart, do not "make up" the missed sessions. Run session A — just the due queue items — and count the week as done. The people who abandon maintenance are overwhelmingly the ones who treated one missed week as evidence the plan had failed and then owed themselves a debt they never paid.
You missed a month. Run a compressed audit instead of resuming blind: fifteen-minute blind template sweep, mark what decayed, put those at the front of the queue, resume the normal loop next week. Twenty minutes of measurement is worth more than four hours of undirected catch-up.
The loop has become comfortable. If session B stopped feeling hard, you are drawing from problems you already own. Deliberately raise difficulty: draw only from patterns marked below cold, or move session B to unseen Hards. A comfortable maintenance loop is maintaining your comfort rather than your coverage.
An interview lands with four days' notice, not fourteen. Compress rather than panic. Day 4: filtered sweep plus one rebuild on the single worst pattern. Day 3: company staples, timed. Day 2: one recorded mock. Day 1: light review and sleep. You will not repair much in four days — what you can fully recover is delivery, and delivery is worth more marginal points than one more pattern.
You interview, you fail, and you want to quit the loop. Run the loop that week anyway, at minimum session A. Write the interview autopsy in the same four buckets as L57 — classification, template, implementation, time — and add a fifth for composure. A failed loop is the highest-quality data you will ever get about your own weak list, and it has a short half-life.
You get the job. Drop to session A only, once a week. Do not stop entirely. The asymmetry that made maintenance obviously correct does not change once you are employed — it is exactly the situation where a lapse goes unnoticed for a year.
Checkpoint
- Produce 15+ pattern skeletons blind from an empty file in fifteen minutes.
- Re-run the L59 sweep on the same list and compute the three delta numbers honestly.
- Distinguish a persistent retrieval failure from a comprehension gap, and route each to the right remedy.
- State a written maintenance plan with named days, named times, a queue location, and a calendar-dated quarterly audit.
- Score yourself across all six exit dimensions and name which one is your binding constraint.
- Run the two-week pre-onsite block from memory, including the measure-before-studying step at day 14.
- Resume after a missed week or month without restarting or abandoning.
- Explain why the capability is rented rather than owned, and state the weekly rent.
Spaced queue
This session rebuilds the queue completely from today's audit, and this is the version you carry forward permanently:
- cold → 60 days
- warm → 21 days
- hint → 7 days
- failed → 2 days, then 7 days
Three structural rules for the ongoing loop:
- The queue is checked in session A, every week, without exception. It is the load-bearing part of the loop; sessions B and C are what get dropped in a bad week.
- Regressions shorten the interval. A
coldthat comes backwarmat the next audit means sixty days was too long for that pattern; move it to a thirty-day cycle specifically. - The quarterly audit rebuilds the whole table. Not an increment — a fresh sweep, so drift is corrected rather than accumulated.
That is the end of the track. The queue and the ninety-minute loop are what you take with you.
The one-page carry-forward
Copy this into wherever your queue lives. It is everything from sixty-five sessions that you need on an ordinary week.
Weekly · 90 minutes
- Session A · 30 min · due queue items only. Never skipped.
- Session B · 30 min · one unseen Medium, 20 min timed plus 10 min review. Log time-to-pattern-name.
- Session C · 30 min · one compressed L60 rebuild on the current bottom pattern.
Quarterly · 75 minutes — full re-audit, fresh sweep, rebuild the table, re-score the six exit dimensions.
Interval ladder — cold 60d · warm 21d · hint 7d · failed 2d then 7d. Regressions halve the interval.
Delivery cues — brute force and its complexity before optimising · name the insight as a sentence · justify the data structure in one line · walk edge cases before running · state your position at minute 40 regardless of progress.
When stuck — what am I recomputing? · what would sorting buy? · what is the state, in English? · which two patterns each solve half? · what do the constraints imply?
When blanked — say the classification out loud, work one small input by hand, write the brute force, keep narrating.
Two weeks out — measure first, repair three, work staples, two recorded mocks, one contest, rest the last day.
That page is the artefact. The sessions were the process that produced it.