2026-08-19 11:23:03 -04:00
<!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "UTF-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< title > LeetCode Dependency Spine</ title >
< link href = "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap" rel = "stylesheet" >
< style >
*, * :: before , * :: after { box-sizing : border-box ; margin : 0 ; padding : 0 ; }
: root {
2026-08-19 11:26:29 -04:00
--color-paper : #020202 ;
--color-ink : #f2f2f2 ;
--color-muted : #989898 ;
--color-accent : #449df0 ;
2026-08-19 11:23:03 -04:00
--font-sans : 'Inter' , system-ui , sans-serif ;
--font-serif : 'Instrument Serif' , serif ;
--font-mono : 'IBM Plex Mono' , ui-monospace , monospace ;
}
body {
font-family : var ( -- font - sans );
background : var ( -- color - paper );
color : var ( -- color - ink );
min-height : 100 vh ;
display : flex ;
align-items : center ;
justify-content : center ;
padding : 3 rem 2 rem ;
}
. frame { max-width : 1360 px ; width : 100 % ; }
. eyebrow {
font-family : var ( -- font - mono );
font-size : 0.66 rem ;
font-weight : 500 ;
letter-spacing : 0.18 em ;
text-transform : uppercase ;
color : var ( -- color - muted );
margin-bottom : 0.5 rem ;
}
h1 {
font-family : var ( -- font - serif );
font-size : clamp ( 1.5 rem , 2.4 vw + 0.75 rem , 2 rem );
font-weight : 400 ;
letter-spacing : -0.02 em ;
line-height : 1.15 ;
color : var ( -- color - ink );
margin-bottom : 1.5 rem ;
}
svg { width : 100 % ; min-width : 900 px ; display : block ; }
</ style >
</ head >
< body >
< div class = "frame" >
< p class = "eyebrow" > prdlk / leetcode · dependency spine</ p >
< h1 > How the 24 topics build on each other</ h1 >
< svg viewBox = "0 0 1472 648" xmlns = "http://www.w3.org/2000/svg" role = "img" aria-labelledby = "dependency-spine-title dependency-spine-desc" >
< title id = "dependency-spine-title" > LeetCode topic dependency spine</ title >
< desc id = "dependency-spine-desc" > Dependency graph of 24 LeetCode study topics across five phases, showing which topics build on which, with Tree DFS and 1-D dynamic programming as the two central hubs.</ desc >
< defs >
2026-08-19 11:26:29 -04:00
< marker id = "arrow" markerWidth = "8" markerHeight = "6" refX = "7" refY = "3" orient = "auto" >< polygon points = "0 0, 8 3, 0 6" fill = "#989898" /></ marker >
< marker id = "arrow-accent" markerWidth = "8" markerHeight = "6" refX = "7" refY = "3" orient = "auto" >< polygon points = "0 0, 8 3, 0 6" fill = "#449df0" /></ marker >
< marker id = "arrow-link" markerWidth = "8" markerHeight = "6" refX = "7" refY = "3" orient = "auto" >< polygon points = "0 0, 8 3, 0 6" fill = "#6ab0f5" /></ marker >
2026-08-19 11:23:03 -04:00
</ defs >
2026-08-19 11:26:29 -04:00
< rect width = "100%" height = "100%" fill = "#020202" />
2026-08-19 11:23:03 -04:00
<!-- ============ zones (painted first) ============ -->
2026-08-19 11:26:29 -04:00
< rect x = "40" y = "40" width = "368" height = "312" rx = "8" fill = "rgba(242,242,242,0.02)" stroke = "rgba(242,242,242,0.10)" stroke-width = "0.8" />
< rect x = "56" y = "44" width = "168" height = "12" rx = "2" fill = "#020202" />
< text x = "60" y = "53" fill = "rgba(242,242,242,0.40)" font-size = "7" font-family = "'IBM Plex Mono', monospace" letter-spacing = "0.14em" > PHASE I — LINEAR STRUCTURES</ text >
2026-08-19 11:23:03 -04:00
2026-08-19 11:26:29 -04:00
< rect x = "456" y = "40" width = "368" height = "312" rx = "8" fill = "rgba(242,242,242,0.02)" stroke = "rgba(242,242,242,0.10)" stroke-width = "0.8" />
< rect x = "472" y = "44" width = "152" height = "12" rx = "2" fill = "#020202" />
< text x = "476" y = "53" fill = "rgba(242,242,242,0.40)" font-size = "7" font-family = "'IBM Plex Mono', monospace" letter-spacing = "0.14em" > PHASE III — HIERARCHICAL</ text >
2026-08-19 11:23:03 -04:00
2026-08-19 11:26:29 -04:00
< rect x = "456" y = "384" width = "368" height = "168" rx = "8" fill = "rgba(242,242,242,0.02)" stroke = "rgba(242,242,242,0.10)" stroke-width = "0.8" />
< rect x = "472" y = "388" width = "144" height = "12" rx = "2" fill = "#020202" />
< text x = "476" y = "397" fill = "rgba(242,242,242,0.40)" font-size = "7" font-family = "'IBM Plex Mono', monospace" letter-spacing = "0.14em" > PHASE II — NODAL & GRID</ text >
2026-08-19 11:23:03 -04:00
2026-08-19 11:26:29 -04:00
< rect x = "872" y = "40" width = "560" height = "312" rx = "8" fill = "rgba(242,242,242,0.02)" stroke = "rgba(242,242,242,0.10)" stroke-width = "0.8" />
< rect x = "888" y = "44" width = "264" height = "12" rx = "2" fill = "#020202" />
< text x = "892" y = "53" fill = "rgba(242,242,242,0.40)" font-size = "7" font-family = "'IBM Plex Mono', monospace" letter-spacing = "0.14em" > PHASES IV– V — RELATIONAL & DECISION-SPACE</ text >
2026-08-19 11:23:03 -04:00
<!-- ============ arrows (before boxes) ============ -->
<!-- same-row horizontals -->
2026-08-19 11:26:29 -04:00
< line x1 = "200" y1 = "168" x2 = "248" y2 = "168" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 3 → 4 -->
< line x1 = "200" y1 = "240" x2 = "248" y2 = "240" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 6 → 7 -->
< line x1 = "200" y1 = "312" x2 = "248" y2 = "312" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 1 → 2 -->
< line x1 = "616" y1 = "440" x2 = "664" y2 = "440" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 8 → 9 -->
< line x1 = "1032" y1 = "96" x2 = "1080" y2 = "96" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 16 → 18 -->
< line x1 = "1224" y1 = "240" x2 = "1272" y2 = "240" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 21 → 22 -->
< line x1 = "1224" y1 = "312" x2 = "1272" y2 = "312" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 23 → 24 -->
< line x1 = "616" y1 = "84" x2 = "888" y2 = "84" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 11 → 16 -->
< line x1 = "616" y1 = "312" x2 = "888" y2 = "312" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 12 → 17 -->
2026-08-19 11:23:03 -04:00
<!-- same-column verticals -->
2026-08-19 11:26:29 -04:00
< line x1 = "544" y1 = "120" x2 = "544" y2 = "144" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 11 → 13 -->
< line x1 = "960" y1 = "120" x2 = "960" y2 = "144" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 16 → 19 -->
< line x1 = "1152" y1 = "120" x2 = "1152" y2 = "144" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 18 → 20 -->
< line x1 = "1152" y1 = "192" x2 = "1152" y2 = "216" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 20 → 21 -->
< line x1 = "1152" y1 = "264" x2 = "1152" y2 = "288" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 21 → 23 -->
2026-08-19 11:23:03 -04:00
<!-- rounded right-angle elbows -->
2026-08-19 11:26:29 -04:00
< path d = "M200,96 H416 Q424,96 424,104 V160 Q424,168 432,168 H472" fill = "none" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 5 → 13 -->
< path d = "M616,96 H640 Q648,96 648,104 V160 Q648,168 656,168 H664" fill = "none" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 11 → 14 -->
< path d = "M616,108 H624 Q632,108 632,116 V232 Q632,240 640,240 H664" fill = "none" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 11 → 15 -->
< path d = "M392,184 H432 Q440,184 440,192 V504 Q440,512 448,512 H472" fill = "none" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 4 → 10 -->
< path d = "M128,336 V560 Q128,568 136,568 H728 Q736,568 736,560 V464" fill = "none" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" /> <!-- 1 → 9 -->
2026-08-19 11:23:03 -04:00
<!-- ============ nodes ============ -->
<!-- 05 Binary Search — entry -->
2026-08-19 11:26:29 -04:00
< rect x = "56" y = "72" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "56" y = "72" width = "144" height = "48" rx = "6" fill = "rgba(152,152,152,0.10)" stroke = "#6f6f6f" stroke-width = "1" />
< rect x = "64" y = "78" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "76" y = "87" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 05</ text >
< text x = "128" y = "104" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Binary Search</ text >
2026-08-19 11:23:03 -04:00
<!-- 03 Two Pointers — entry -->
2026-08-19 11:26:29 -04:00
< rect x = "56" y = "144" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "56" y = "144" width = "144" height = "48" rx = "6" fill = "rgba(152,152,152,0.10)" stroke = "#6f6f6f" stroke-width = "1" />
< rect x = "64" y = "150" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "76" y = "159" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 03</ text >
< text x = "128" y = "176" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Two Pointers</ text >
2026-08-19 11:23:03 -04:00
<!-- 04 Sliding Window -->
2026-08-19 11:26:29 -04:00
< rect x = "248" y = "144" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "248" y = "144" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "256" y = "150" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "268" y = "159" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 04</ text >
< text x = "320" y = "176" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Sliding Window</ text >
2026-08-19 11:23:03 -04:00
<!-- 06 Stack — entry -->
2026-08-19 11:26:29 -04:00
< rect x = "56" y = "216" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "56" y = "216" width = "144" height = "48" rx = "6" fill = "rgba(152,152,152,0.10)" stroke = "#6f6f6f" stroke-width = "1" />
< rect x = "64" y = "222" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "76" y = "231" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 06</ text >
< text x = "128" y = "248" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Stack</ text >
2026-08-19 11:23:03 -04:00
<!-- 07 Monotonic Stack -->
2026-08-19 11:26:29 -04:00
< rect x = "248" y = "216" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "248" y = "216" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "256" y = "222" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "268" y = "231" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 07</ text >
< text x = "320" y = "248" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Monotonic Stack</ text >
2026-08-19 11:23:03 -04:00
<!-- 01 Hash-Based Lookup — entry -->
2026-08-19 11:26:29 -04:00
< rect x = "56" y = "288" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "56" y = "288" width = "144" height = "48" rx = "6" fill = "rgba(152,152,152,0.10)" stroke = "#6f6f6f" stroke-width = "1" />
< rect x = "64" y = "294" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "76" y = "303" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 01</ text >
< text x = "128" y = "320" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Hash Lookup</ text >
2026-08-19 11:23:03 -04:00
<!-- 02 Prefix Sum -->
2026-08-19 11:26:29 -04:00
< rect x = "248" y = "288" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "248" y = "288" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "256" y = "294" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "268" y = "303" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 02</ text >
< text x = "320" y = "320" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Prefix Sum</ text >
2026-08-19 11:23:03 -04:00
<!-- 11 Tree DFS — FOCAL -->
2026-08-19 11:26:29 -04:00
< rect x = "472" y = "72" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "472" y = "72" width = "144" height = "48" rx = "6" fill = "rgba(68,157,240,0.12)" stroke = "#449df0" stroke-width = "1.2" />
< rect x = "480" y = "78" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(68,157,240,0.50)" stroke-width = "0.8" />
< text x = "492" y = "87" fill = "#449df0" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 11</ text >
< text x = "544" y = "104" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Tree DFS</ text >
2026-08-19 11:23:03 -04:00
<!-- 13 Binary Search Tree -->
2026-08-19 11:26:29 -04:00
< rect x = "472" y = "144" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "472" y = "144" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "480" y = "150" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "492" y = "159" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 13</ text >
< text x = "544" y = "176" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Binary Search Tree</ text >
2026-08-19 11:23:03 -04:00
<!-- 14 Heap -->
2026-08-19 11:26:29 -04:00
< rect x = "664" y = "144" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "664" y = "144" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "672" y = "150" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "684" y = "159" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 14</ text >
< text x = "736" y = "170" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Heap</ text >
< text x = "736" y = "184" fill = "#989898" font-size = "9" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" > priority queue</ text >
2026-08-19 11:23:03 -04:00
<!-- 15 Trie -->
2026-08-19 11:26:29 -04:00
< rect x = "664" y = "216" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "664" y = "216" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "672" y = "222" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "684" y = "231" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 15</ text >
< text x = "736" y = "248" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Trie</ text >
2026-08-19 11:23:03 -04:00
<!-- 12 Tree BFS — entry -->
2026-08-19 11:26:29 -04:00
< rect x = "472" y = "288" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "472" y = "288" width = "144" height = "48" rx = "6" fill = "rgba(152,152,152,0.10)" stroke = "#6f6f6f" stroke-width = "1" />
< rect x = "480" y = "294" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "492" y = "303" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 12</ text >
< text x = "544" y = "320" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Tree BFS</ text >
2026-08-19 11:23:03 -04:00
<!-- 08 Linked List — entry -->
2026-08-19 11:26:29 -04:00
< rect x = "472" y = "416" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "472" y = "416" width = "144" height = "48" rx = "6" fill = "rgba(152,152,152,0.10)" stroke = "#6f6f6f" stroke-width = "1" />
< rect x = "480" y = "422" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "492" y = "431" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 08</ text >
< text x = "544" y = "448" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Linked List</ text >
2026-08-19 11:23:03 -04:00
<!-- 09 Hybrid Structures -->
2026-08-19 11:26:29 -04:00
< rect x = "664" y = "416" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "664" y = "416" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "672" y = "422" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "684" y = "431" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 09</ text >
< text x = "736" y = "448" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Hybrid Structures</ text >
2026-08-19 11:23:03 -04:00
<!-- 10 Matrix Index Math -->
2026-08-19 11:26:29 -04:00
< rect x = "472" y = "488" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "472" y = "488" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "480" y = "494" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "492" y = "503" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 10</ text >
< text x = "544" y = "520" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Matrix Index Math</ text >
2026-08-19 11:23:03 -04:00
<!-- 16 Graph DFS -->
2026-08-19 11:26:29 -04:00
< rect x = "888" y = "72" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "888" y = "72" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "896" y = "78" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "908" y = "87" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 16</ text >
< text x = "960" y = "104" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Graph DFS</ text >
2026-08-19 11:23:03 -04:00
<!-- 18 Topological Sort -->
2026-08-19 11:26:29 -04:00
< rect x = "1080" y = "72" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "1080" y = "72" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "1088" y = "78" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "1100" y = "87" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 18</ text >
< text x = "1152" y = "104" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Topological Sort</ text >
2026-08-19 11:23:03 -04:00
<!-- 19 Union-Find -->
2026-08-19 11:26:29 -04:00
< rect x = "888" y = "144" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "888" y = "144" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "896" y = "150" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "908" y = "159" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 19</ text >
< text x = "960" y = "176" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Union-Find</ text >
2026-08-19 11:23:03 -04:00
<!-- 20 Backtracking -->
2026-08-19 11:26:29 -04:00
< rect x = "1080" y = "144" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "1080" y = "144" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "1088" y = "150" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "1100" y = "159" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 20</ text >
< text x = "1152" y = "176" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Backtracking</ text >
2026-08-19 11:23:03 -04:00
<!-- 21 1-D DP — FOCAL -->
2026-08-19 11:26:29 -04:00
< rect x = "1080" y = "216" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "1080" y = "216" width = "144" height = "48" rx = "6" fill = "rgba(68,157,240,0.12)" stroke = "#449df0" stroke-width = "1.2" />
< rect x = "1088" y = "222" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(68,157,240,0.50)" stroke-width = "0.8" />
< text x = "1100" y = "231" fill = "#449df0" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 21</ text >
< text x = "1152" y = "242" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > 1-D DP</ text >
< text x = "1152" y = "256" fill = "#989898" font-size = "9" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" > dynamic programming</ text >
2026-08-19 11:23:03 -04:00
<!-- 22 Multi-D / Grid DP -->
2026-08-19 11:26:29 -04:00
< rect x = "1272" y = "216" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "1272" y = "216" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "1280" y = "222" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "1292" y = "231" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 22</ text >
< text x = "1344" y = "242" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Multi-D / Grid DP</ text >
2026-08-19 11:23:03 -04:00
<!-- 17 Graph BFS -->
2026-08-19 11:26:29 -04:00
< rect x = "888" y = "288" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "888" y = "288" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "896" y = "294" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "908" y = "303" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 17</ text >
< text x = "960" y = "320" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Graph BFS</ text >
2026-08-19 11:23:03 -04:00
<!-- 23 Greedy -->
2026-08-19 11:26:29 -04:00
< rect x = "1080" y = "288" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "1080" y = "288" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "1088" y = "294" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "1100" y = "303" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 23</ text >
< text x = "1152" y = "320" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Greedy</ text >
2026-08-19 11:23:03 -04:00
<!-- 24 Intervals -->
2026-08-19 11:26:29 -04:00
< rect x = "1272" y = "288" width = "144" height = "48" rx = "6" fill = "#020202" />
< rect x = "1272" y = "288" width = "144" height = "48" rx = "6" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< rect x = "1280" y = "294" width = "24" height = "12" rx = "2" fill = "transparent" stroke = "rgba(242,242,242,0.30)" stroke-width = "0.8" />
< text x = "1292" y = "303" fill = "#989898" font-size = "7" font-family = "'IBM Plex Mono', monospace" text-anchor = "middle" letter-spacing = "0.08em" > 24</ text >
< text x = "1344" y = "320" fill = "#f2f2f2" font-size = "12" font-weight = "600" font-family = "'Inter', sans-serif" text-anchor = "middle" > Intervals</ text >
2026-08-19 11:23:03 -04:00
<!-- ============ legend ============ -->
2026-08-19 11:26:29 -04:00
< line x1 = "40" y1 = "600" x2 = "1432" y2 = "600" stroke = "rgba(242,242,242,0.10)" stroke-width = "0.8" />
< text x = "40" y = "620" fill = "#989898" font-size = "8" font-family = "'IBM Plex Mono', monospace" letter-spacing = "0.14em" > LEGEND</ text >
2026-08-19 11:23:03 -04:00
2026-08-19 11:26:29 -04:00
< rect x = "160" y = "608" width = "20" height = "12" rx = "2" fill = "rgba(152,152,152,0.10)" stroke = "#6f6f6f" stroke-width = "1" />
< text x = "188" y = "618" fill = "#989898" font-size = "8" font-family = "'IBM Plex Mono', monospace" letter-spacing = "0.06em" > ENTRY — NO PREREQS</ text >
2026-08-19 11:23:03 -04:00
2026-08-19 11:26:29 -04:00
< rect x = "360" y = "608" width = "20" height = "12" rx = "2" fill = "#0d0d0d" stroke = "#f2f2f2" stroke-width = "1" />
< text x = "388" y = "618" fill = "#989898" font-size = "8" font-family = "'IBM Plex Mono', monospace" letter-spacing = "0.06em" > TOPIC</ text >
2026-08-19 11:23:03 -04:00
2026-08-19 11:26:29 -04:00
< rect x = "480" y = "608" width = "20" height = "12" rx = "2" fill = "rgba(68,157,240,0.12)" stroke = "#449df0" stroke-width = "1.2" />
< text x = "508" y = "618" fill = "#989898" font-size = "8" font-family = "'IBM Plex Mono', monospace" letter-spacing = "0.06em" > FOCAL HUB</ text >
2026-08-19 11:23:03 -04:00
2026-08-19 11:26:29 -04:00
< line x1 = "624" y1 = "614" x2 = "656" y2 = "614" stroke = "#989898" stroke-width = "1" marker-end = "url(#arrow)" />
< text x = "668" y = "618" fill = "#989898" font-size = "8" font-family = "'IBM Plex Mono', monospace" letter-spacing = "0.06em" > BUILDS ON</ text >
2026-08-19 11:23:03 -04:00
2026-08-19 11:26:29 -04:00
< rect x = "792" y = "608" width = "20" height = "12" rx = "2" fill = "rgba(242,242,242,0.02)" stroke = "rgba(242,242,242,0.10)" stroke-width = "0.8" />
< text x = "820" y = "618" fill = "#989898" font-size = "8" font-family = "'IBM Plex Mono', monospace" letter-spacing = "0.06em" > PHASE ZONE</ text >
2026-08-19 11:23:03 -04:00
</ svg >
</ div >
</ body >
</ html >