Day 89 — Final revision: your weak list

revision day · weak-list cleanup · blank-file recall

Tonight's goal: empty the course weak list. Re-solve every Notion tracker row where Revision Done is unchecked, then finalize one page of pattern invariants from memory before checking the lessons.

Tonight's protocol

Use Lesson 26 — How to Run a Revision Day for the two-run gate. Borrow the speak-first checkpoint from Lesson 27 — How to Run a Mock / Mixed Day.

  1. 0:00-0:03: answer the warm-up MCQs below. Missed answers become weak-list clues, not study time.
  2. 0:03-0:05: open the Notion tracker filtered to Revision Done = unchecked. Open a blank file for the first unchecked problem. Solving starts at minute 5.
  3. Each unchecked problem, 0:00-0:02: say the pattern name, invariant, brute force, target time, and target space out loud before typing.
  4. Each unchecked problem, 0:02-0:22: code from a blank file. No notes, no stored code, no hints, no video, no comments section.
  5. Each unchecked problem, 0:22-0:25: run or submit at most twice. Tick Revision Done only if run one or run two passes.
  6. After every failed slot, 2 minutes: leave Revision Done unchecked and write one line: WA: <missed invariant, edge case, or implementation bug>.
  7. Final 20 minutes: write the one-page cheat sheet from memory first: arrays, strings/windows, stack, linked list, trees, heap, graphs, DP, and any system-design gate you failed. Then check the relevant lessons and correct only wrong or missing invariant lines.

The problem menu

Your actual menu is the tracker filter: every unchecked course problem must be re-solved. Use this link table only to open the exact unchecked row and confirm its pattern name.

BlockProblemPattern name
ArraysTwo SumHashing / seen question
ArraysBest Time to Buy and Sell StockGreedy min-tracking
ArraysContains DuplicateHashing / seen question
ArraysMaximum SubarrayKadane's algorithm
ArraysProduct of Array Except SelfPrefix × suffix products
ArraysMove ZeroesTwo pointers, same direction
ArraysMerge Sorted ArrayTwo pointers, converging
ArraysMajority ElementBoyer-Moore majority vote
ArraysMissing NumberXOR cancellation
ArraysFind Pivot IndexPrefix sums
ArraysRange Sum Query - ImmutablePrefix sums
Strings/windowValid AnagramFrequency Counting
Strings/windowValid PalindromeTwo Pointers on Strings
Strings/windowLongest Substring Without Repeating CharactersSliding Window I: The Shrinking Rule
Strings/windowLongest Repeating Character ReplacementSliding Window II: Validity With a Budget
Strings/windowMinimum Window SubstringSliding Window III: Minimum Window
Strings/windowGroup AnagramsFrequency Counting
StackValid ParenthesesStack matching
StackMin StackShadow minima stack
StackDaily TemperaturesMonotonic stack: next warmer
StackNext Greater Element IMonotonic stack: next greater
StackLargest Rectangle in HistogramMonotonic stack: finalize on shorter bar
StackEvaluate Reverse Polish NotationStack evaluation
Linked listReverse Linked Listprev/curr/next
Linked listMerge Two Sorted ListsThe dummy node trick
Linked listLinked List CycleFloyd's fast/slow pointers
Linked listRemove Nth Node From End of ListGap Pointers: n Apart
Linked listReorder ListComposing Linked-List Primitives
Linked listCopy List with Random PointerCloning with a map
TreesInorder TraversalRecursive inorder traversal
TreesMaximum DepthTree recursion with return value
TreesSame TreeSimultaneous DFS / lockstep comparison
TreesLevel Order TraversalBFS levels with queue snapshot
TreesDiameter of Binary TreePiggyback on height
TreesBalanced Binary TreePiggyback on height
TreesLowest Common AncestorTree recursion: split under the current node
TreesBinary Tree Right Side ViewBFS levels: queue-length snapshot, keep the last node
TreesSerialize and Deserialize Binary TreePreorder plus explicit null markers
TreesPath SumDFS paths: carry the remaining sum
TreesConstruct Binary Tree from Preorder and InorderPreorder root plus inorder split with hashmap
HeapKth Largest ElementHeap top-k
HeapTop K Frequent ElementsHeap top-k by frequency
HeapMerge K Sorted ListsK-way merge heap
HeapFind Median from Data StreamTwo heaps
HeapTask SchedulerHeap scheduling with cooldown
GraphsNumber of Islandsgrid DFS / flooding a grid
GraphsClone Graphgraph cloning / cloning with a map
GraphsCourse Scheduletopological sort / prerequisites and cycles
GraphsPacific Atlantic Water Flowreverse flood fill / search backwards
GraphsWord Ladderimplicit graph BFS
GraphsNetwork Delay TimeDijkstra / BFS with weights
DPClimbing StairsDP four questions
DPHouse Robbertake-or-skip DP
DPCoin Changeunbounded minimum DP
DPLongest Increasing Subsequenceending-at-i DP state
DPPartition Equal Subset Sum0/1 knapsack reachable sums
DPLongest Common Subsequence2D DP: two strings, one grid
DPEdit DistanceTwo-string DP: insert, delete, replace
DPDecode WaysCounting DP with validity constraints
DPWord BreakSegmentable prefixes
DPBurst BalloonsInterval DP: choose the last action

Warm-up MCQs

1. When does Day 89 revision credit count?

2. Which move starts each timed slot correctly?

3. Which invariant fits a seen-question problem?

4. What repairs a broken sliding window?

5. When a monotonic stack pops, what happened?

6. Which checklist belongs before DP code?

Self-check gate

Pass tonight only if

Failure path: if any row fails after two runs, do not tick Revision Done. Keep that exact problem unchecked, put it first in the next revision slot, and ask your teacher with the problem link, your invariant sentence, the failing code, and the WA note.