16 KiB
hidden
| hidden |
|---|
| true |
todo — draining the review backlog
every solution in work/1 owes a blind re-solve at work/3 and a second one at work/7. both buckets are empty, so 36 problems owe 72 re-solves and not one has been started. snapshot: reviewqueues("2026-08-31") from apps/cli/work.ts — what bun run pick shows — cross-checked against /api/stats.
at 10 problems a day including the campaign's own load, 72 re-solves do not fit in one week: this week absorbs 38, the +3 rung finishes sat sep 5 (campaign day 20), the last +7 clears fri sep 18 (day 33), and normal srs resumes sat sep 19 — see when standard srs resumes. saturday gates are deliberately left out of the count.
rules this plan follows
- ≤ 10 problems a day, everything counted. each day's new core set and the on-time reviews it earns are booked first; the backlog takes what is left — 7 slots on a light day, 2 on a heavy one.
- coverage before depth. all 36
+3re-solves come first — one blind pass over everything — before any problem gets its+7. - oldest first. lc 387 and lc 1365 have been sitting 50 days.
- ≥ 3 days between a problem's own
+3and+7. two re-solves in one day test nothing. - sunday is not a slot.
workingday()never mints one; neither does this list. - re-solve blind, then push.
bun run pick(tab cycles to the 3-day and 7-day sections) scaffolds straight intowork/3/work/7. do not openwork/1first. pushing the file is the log:close-solved.ymlposts the bucket to/admin/solvedand d1 moves the problem up the ladder.
this week
mon aug 31 — 3 new + 7 backlog = 10/10
topic 08 — linked list (#10, closed today)
| bucket | problem | difficulty | where | why |
|---|---|---|---|---|
work/1 |
lc 21 · merge two sorted lists | easy | linked list | done today |
work/1 |
lc 206 · reverse linked list | easy | linked list | done today |
work/1 |
lc 141 · linked list cycle | easy | hash table | done today |
work/3 |
lc 387 · first unique character in a string | easy | hash table | 50d stale — first solved 2026-07-12 |
work/3 |
lc 1365 · how many numbers are smaller than the current number | easy | array | 50d stale — first solved 2026-07-12 |
work/3 |
lc 268 · missing number | easy | array | 14d stale — first solved 2026-08-17 |
work/3 |
lc 344 · reverse string | easy | two pointers | 14d stale — first solved 2026-08-17 |
work/3 |
lc 1426 · counting elements | easy | array | 14d stale — first solved 2026-08-17 |
work/3 |
lc 1832 · check if the sentence is pangram | easy | hash table | 14d stale — first solved 2026-08-17 |
work/3 |
lc 15 · 3sum | medium | array | 13d stale — first solved 2026-08-18 |
tue sep 1 — 2 new + 8 backlog = 10/10
topic 09 — hybrid structures (#11)
| bucket | problem | difficulty | where | why |
|---|---|---|---|---|
work/1 |
lc 146 · lru cache | medium | topic 09 — hybrid structures | new core problem |
work/1 |
lc 2 · add two numbers | medium | topic 09 — hybrid structures | new core problem |
work/3 |
lc 49 · group anagrams | medium | array | 13d stale — first solved 2026-08-18 |
work/3 |
lc 125 · valid palindrome | easy | two pointers | 13d stale — first solved 2026-08-18 |
work/3 |
lc 167 · two sum ii - input array is sorted | medium | array | 13d stale — first solved 2026-08-18 |
work/3 |
lc 217 · contains duplicate | easy | array | 13d stale — first solved 2026-08-18 |
work/3 |
lc 238 · product of array except self | medium | array | 13d stale — first solved 2026-08-18 |
work/3 |
lc 242 · valid anagram | easy | hash table | 13d stale — first solved 2026-08-18 |
work/3 |
lc 303 · range sum query - immutable | easy | array | 13d stale — first solved 2026-08-18 |
work/3 |
lc 560 · subarray sum equals k | medium | array | 13d stale — first solved 2026-08-18 |
wed sep 2 — 3 new + 7 backlog = 10/10
topic 10 — matrix index math (#12)
| bucket | problem | difficulty | where | why |
|---|---|---|---|---|
work/1 |
lc 48 · rotate image | medium | topic 10 — matrix index math | new core problem |
work/1 |
lc 54 · spiral matrix | medium | topic 10 — matrix index math | new core problem |
work/1 |
lc 73 · set matrix zeroes | medium | topic 10 — matrix index math | new core problem |
work/3 |
lc 1413 · minimum value to get positive step by step sum | easy | array | 13d stale — first solved 2026-08-18 |
work/3 |
lc 1480 · running sum of 1d array | easy | array | 13d stale — first solved 2026-08-18 |
work/3 |
lc 33 · search in rotated sorted array | medium | array | 12d stale — first solved 2026-08-19 |
work/3 |
lc 704 · binary search | easy | array | 12d stale — first solved 2026-08-19 |
work/3 |
lc 875 · koko eating bananas | medium | array | 12d stale — first solved 2026-08-19 |
work/3 |
lc 977 · squares of a sorted array | easy | array | 12d stale — first solved 2026-08-19 |
work/3 |
lc 121 · best time to buy and sell stock | easy | array | 11d stale — first solved 2026-08-20 |
thu sep 3 — 3 new + 3 on-time reviews + 4 backlog = 10/10
topic 11 — tree dfs (#13)
| bucket | problem | difficulty | where | why |
|---|---|---|---|---|
work/1 |
lc 226 · invert binary tree | easy | topic 11 — tree dfs | new core problem |
work/1 |
lc 104 · maximum depth of binary tree | easy | topic 11 — tree dfs | new core problem |
work/1 |
lc 236 · lowest common ancestor of a binary tree | medium | topic 11 — tree dfs | new core problem |
work/3 |
lc 21 · merge two sorted lists | easy | linked list | on time — solved mon aug 31 |
work/3 |
lc 206 · reverse linked list | easy | linked list | on time — solved mon aug 31 |
work/3 |
lc 141 · linked list cycle | easy | hash table | on time — solved mon aug 31 |
work/3 |
lc 1 · two sum | easy | array | 7d stale — first solved 2026-08-24 |
work/3 |
lc 11 · container with most water | medium | array | 7d stale — first solved 2026-08-24 |
work/3 |
lc 392 · is subsequence | easy | two pointers | 7d stale — first solved 2026-08-24 |
work/3 |
lc 3 · longest substring without repeating characters | medium | hash table | 6d stale — first solved 2026-08-25 |
fri sep 4 — 3 new + 2 on-time reviews + 5 backlog = 10/10
topic 12 — tree bfs (#14)
| bucket | problem | difficulty | where | why |
|---|---|---|---|---|
work/1 |
lc 102 · binary tree level order traversal | medium | topic 12 — tree bfs | new core problem |
work/1 |
lc 199 · binary tree right side view | medium | topic 12 — tree bfs | new core problem |
work/1 |
lc 1448 · count good nodes in binary tree | medium | topic 12 — tree bfs | new core problem |
work/3 |
lc 146 · lru cache | medium | topic 09 — hybrid structures | on time — solved tue sep 1 |
work/3 |
lc 2 · add two numbers | medium | topic 09 — hybrid structures | on time — solved tue sep 1 |
work/3 |
lc 424 · longest repeating character replacement | medium | hash table | 6d stale — first solved 2026-08-25 |
work/3 |
lc 567 · permutation in string | medium | hash table | 6d stale — first solved 2026-08-25 |
work/3 |
lc 35 · search insert position | easy | array | 5d stale — first solved 2026-08-26 |
work/3 |
lc 74 · search a 2d matrix | medium | array | 5d stale — first solved 2026-08-26 |
work/3 |
lc 153 · find minimum in rotated sorted array | medium | array | 5d stale — first solved 2026-08-26 |
sat sep 5 — 3 on-time reviews + 7 backlog = 10/10
no new topic — saturday.
| bucket | problem | difficulty | where | why |
|---|---|---|---|---|
work/3 |
lc 48 · rotate image | medium | topic 10 — matrix index math | on time — solved wed sep 2 |
work/3 |
lc 54 · spiral matrix | medium | topic 10 — matrix index math | on time — solved wed sep 2 |
work/3 |
lc 73 · set matrix zeroes | medium | topic 10 — matrix index math | on time — solved wed sep 2 |
work/3 |
lc 20 · valid parentheses | easy | string | 4d stale — first solved 2026-08-27 |
work/3 |
lc 150 · evaluate reverse polish notation | medium | array | 4d stale — first solved 2026-08-27 |
work/3 |
lc 155 · min stack | medium | stack | 4d stale — first solved 2026-08-27 |
work/3 |
lc 739 · daily temperatures | medium | array | 3d stale — first solved 2026-08-28 |
work/3 |
lc 853 · car fleet | medium | array | 3d stale — first solved 2026-08-28 |
work/7 |
lc 387 · first unique character in a string | easy | hash table | +3 was mon aug 31 |
work/7 |
lc 1365 · how many numbers are smaller than the current number | easy | array | +3 was mon aug 31 |
sun sep 6 — rest day
nothing. by design.
carry-over
the 34 re-solves that do not fit this week, at the same cap and the same rules. booked = that day's new core set plus the on-time reviews it owes.
| day | topic | booked | backlog re-solves | load |
|---|---|---|---|---|
| mon sep 7 | topic 13 — binary search tree | 10 | none — the day is already full | 10/10 |
| tue sep 8 | topic 14 — heap / priority queue | 7 | work/7 — lc 268, lc 344, lc 1426 |
10/10 |
| wed sep 9 | topic 15 — trie | 5 | work/7 — lc 1832, lc 15, lc 49, lc 125, lc 167 |
10/10 |
| thu sep 10 | topic 16 — graph dfs | 9 | work/7 — lc 217 |
10/10 |
| fri sep 11 | topic 17 — graph bfs | 8 | work/7 — lc 238, lc 242 |
10/10 |
| sat sep 12 | none — saturday | 2 | work/7 — lc 303, lc 560, lc 1413, lc 1480, lc 33, lc 704, lc 875, lc 977 |
10/10 |
| mon sep 14 | topic 18 — topological sort | 10 | none — the day is already full | 10/10 |
| tue sep 15 | topic 19 — union-find | 5 | work/7 — lc 121, lc 1, lc 11, lc 392, lc 3 |
10/10 |
| wed sep 16 | topic 20 — backtracking | 5 | work/7 — lc 424, lc 567, lc 35, lc 74, lc 153 |
10/10 |
| thu sep 17 | topic 21 — 1-d dynamic programming | 8 | work/7 — lc 20, lc 150 |
10/10 |
| fri sep 18 | topic 22 — multi-d / grid dp | 7 | work/7 — lc 155, lc 739, lc 853 |
10/10 |
when standard srs resumes
- sat sep 5 (campaign day 20) — the
+3rung is empty. every one of the 36 has been recalled blind once; nothing is unretrieved any more. - fri sep 18 (campaign day 33) — the last backlog
+7lands.work/3andwork/7hold a file for all 36, soreviewqueues()owes nothing; the 28 that have a d1 row areretiredon the ladder, and the 8 listed at the bottom of this file never had one. - sat sep 19 onward — standard srs. the only reviews left are the ones the campaign itself minted: solve a problem, its
+3and+7come back onworkingday(solve + 3)andworkingday(solve + 7), the digest asks for ≤review_cap(3) a day,levelreviews()pushes any excess forward, andbun run pick's 3-day and 7-day sections show only what is due. no dated plan needed after this — the digest is the plan.
campaign-native load per working day once the backlog is gone, all of it inside the cap:
| day | topic | new | work/3 |
work/7 |
load |
|---|---|---|---|---|---|
| sat sep 19 | review-only | 0 | 3 | 0 | 3/10 |
| mon sep 21 | topic 23 — greedy | 3 | 5 | 2 | 10/10 |
| tue sep 22 | topic 24 — intervals | 3 | 1 | 2 | 6/10 |
| wed sep 23 | review-only | 0 | 0 | 3 | 3/10 |
| thu sep 24 | review-only | 0 | 3 | 3 | 6/10 |
| fri sep 25 | review-only | 0 | 3 | 3 | 6/10 |
| sat sep 26 | review-only | 0 | 0 | 0 | 0/10 |
| mon sep 28 | review-only | 0 | 0 | 3 | 3/10 |
| tue sep 29 | review-only | 0 | 0 | 3 | 3/10 |
two things to watch there. mon sep 21 is 10/10 on campaign load alone — topic 23's core set, two +7s, and five of the six +3s that land there (thursday's three slide off sunday onto monday, friday's three land natively, and the sixth is pushed to tuesday exactly as levelreviews() would) — so one slipped day re-opens a backlog. and from wed sep 30 the ladder runs dry: apps/api/data/schedule.json books its last topic tue sep 22, so the review-only weeks that close the campaign are drills, optional sets and the weekly gates, none of which this file counts.
not reviews
three july scaffolds in work/1 are still empty, so they owe no re-solve — they are unsolved problems, and bun run pick still lists them in its new-problem section:
| problem | difficulty |
|---|---|
| lc 347 · top k frequent elements | medium |
| lc 451 · sort characters by frequency | medium |
| lc 1636 · sort array by increasing frequency | easy |
what this plan exposes
- 8 of the 36 have no problem issue (387, 1365, 268, 344, 1426, 1832, 1413, 1480) — pre-campaign solves. the catalog reconcile never invents rows, so d1 does not know them and no digest can ever surface them.
bun run pickis the only thing that will ask for these reviews. /api/statsreports a stage that does not exist:ladder: { new: 128, "+3": 3, "+7": 0, retired: 0, "+2": 30 }.+2is not instages(apps/api/src/srs.ts), so 30 rows sit on a pre-0002rung — which is why the digest queue plateaus at 32 due instead of tracking the tables above. that wants a migration, not a re-solve.