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
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.
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.
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.