Files
cpp-flashcards/leetcode/out/roadmap-neetcode150.json
T
tomatocream b4f25ab87b feat: add NeetCode roadmap extractor with dependency graph
- extract.mjs: idempotent script that fetches neetcode.io JS chunks,
  extracts topic dependency graph (18 topics, 21 edges) and problems
  (965 total, 199 NeetCode 150)
- out/roadmap.json: full data (graph + all problems + courses)
- out/roadmap-neetcode150.json: filtered to NeetCode 150 only
- out/roadmap.dot: Graphviz visualization
- out/roadmap.org: org-mode with TODO checklists, Python/C++ links
- neetcode-roadmap-graph.json: standalone edge list
- neetcode-roadmap.dot: standalone DOT file

Also reformats subarray table in qn_00.org
2026-06-01 02:07:20 +08:00

2511 lines
70 KiB
JSON

{
"source": "https://neetcode.io/roadmap",
"extracted": "2026-05-31",
"graph": {
"nodes": [
{
"id": "1",
"name": "Arrays & Hashing",
"prerequisites": []
},
{
"id": "2",
"name": "Two Pointers",
"prerequisites": [
"1"
]
},
{
"id": "6",
"name": "Binary Search",
"prerequisites": [
"2"
]
},
{
"id": "3",
"name": "Stack",
"prerequisites": [
"1"
]
},
{
"id": "4",
"name": "Sliding Window",
"prerequisites": [
"2"
]
},
{
"id": "5",
"name": "Linked List",
"prerequisites": [
"2"
]
},
{
"id": "7",
"name": "Trees",
"prerequisites": [
"5",
"6"
]
},
{
"id": "8",
"name": "Tries",
"prerequisites": [
"7"
]
},
{
"id": "9",
"name": "Heap / Priority Queue",
"prerequisites": [
"7"
]
},
{
"id": "10",
"name": "Backtracking",
"prerequisites": [
"7"
]
},
{
"id": "11",
"name": "Graphs",
"prerequisites": [
"10"
]
},
{
"id": "12",
"name": "1-D Dynamic Programming",
"prerequisites": [
"10"
]
},
{
"id": "13",
"name": "Intervals",
"prerequisites": [
"9"
]
},
{
"id": "16",
"name": "Greedy",
"prerequisites": [
"9"
]
},
{
"id": "17",
"name": "Advanced Graphs",
"prerequisites": [
"9",
"11"
]
},
{
"id": "18",
"name": "Math & Geometry",
"prerequisites": [
"11",
"15"
]
},
{
"id": "14",
"name": "2-D Dynamic Programming",
"prerequisites": [
"11",
"12"
]
},
{
"id": "15",
"name": "Bit Manipulation",
"prerequisites": [
"12"
]
}
],
"edges": [
{
"from": "1",
"to": "2",
"meaning": "prerequisite"
},
{
"from": "2",
"to": "6",
"meaning": "prerequisite"
},
{
"from": "1",
"to": "3",
"meaning": "prerequisite"
},
{
"from": "2",
"to": "4",
"meaning": "prerequisite"
},
{
"from": "2",
"to": "5",
"meaning": "prerequisite"
},
{
"from": "5",
"to": "7",
"meaning": "prerequisite"
},
{
"from": "6",
"to": "7",
"meaning": "prerequisite"
},
{
"from": "7",
"to": "8",
"meaning": "prerequisite"
},
{
"from": "7",
"to": "9",
"meaning": "prerequisite"
},
{
"from": "7",
"to": "10",
"meaning": "prerequisite"
},
{
"from": "10",
"to": "11",
"meaning": "prerequisite"
},
{
"from": "10",
"to": "12",
"meaning": "prerequisite"
},
{
"from": "9",
"to": "13",
"meaning": "prerequisite"
},
{
"from": "9",
"to": "16",
"meaning": "prerequisite"
},
{
"from": "9",
"to": "17",
"meaning": "prerequisite"
},
{
"from": "11",
"to": "17",
"meaning": "prerequisite"
},
{
"from": "11",
"to": "18",
"meaning": "prerequisite"
},
{
"from": "15",
"to": "18",
"meaning": "prerequisite"
},
{
"from": "11",
"to": "14",
"meaning": "prerequisite"
},
{
"from": "12",
"to": "14",
"meaning": "prerequisite"
},
{
"from": "12",
"to": "15",
"meaning": "prerequisite"
}
]
},
"problemsByTopic": {
"Arrays & Hashing": [
{
"name": "Contains Duplicate",
"pattern": "Arrays & Hashing",
"difficulty": "Easy",
"code": "0217-contains-duplicate",
"link": "contains-duplicate/",
"video": "3OamzN90kPg",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Valid Anagram",
"pattern": "Arrays & Hashing",
"difficulty": "Easy",
"code": "0242-valid-anagram",
"link": "valid-anagram/",
"video": "9UtInBqnCgA",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Number of Senior Citizens",
"pattern": "Arrays & Hashing",
"difficulty": "Easy",
"code": "2678-number-of-senior-citizens",
"link": "number-of-senior-citizens/",
"video": "l6_wwKzFmVo",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Two Sum",
"pattern": "Arrays & Hashing",
"difficulty": "Easy",
"code": "0001-two-sum",
"link": "two-sum/",
"video": "KLlXCFG5TnA",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "String Matching in an Array",
"pattern": "Arrays & Hashing",
"difficulty": "Easy",
"code": "1408-string-matching-in-an-array",
"link": "string-matching-in-an-array/",
"video": "7K2BjgjCFDo",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Group Anagrams",
"pattern": "Arrays & Hashing",
"difficulty": "Medium",
"code": "0049-group-anagrams",
"link": "group-anagrams/",
"video": "vzdNOK2oB2E",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Top K Frequent Elements",
"pattern": "Arrays & Hashing",
"difficulty": "Medium",
"code": "0347-top-k-frequent-elements",
"link": "top-k-frequent-elements/",
"video": "YPTqKIgVk-k",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Encode and Decode Strings",
"pattern": "Arrays & Hashing",
"difficulty": "Medium",
"code": "0271-encode-and-decode-strings",
"link": "encode-and-decode-strings/",
"video": "B1k_sxOSgv8",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Product of Array Except Self",
"pattern": "Arrays & Hashing",
"difficulty": "Medium",
"code": "0238-product-of-array-except-self",
"link": "product-of-array-except-self/",
"video": "bNvIQI2wAjk",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Minimum Number of Operations to Move All Balls to Each Box",
"pattern": "Arrays & Hashing",
"difficulty": "Medium",
"code": "1769-minimum-number-of-operations-to-move-all-balls-to-each-box",
"link": "minimum-number-of-operations-to-move-all-balls-to-each-box/",
"video": "ZmH3gHiIqfI",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Valid Sudoku",
"pattern": "Arrays & Hashing",
"difficulty": "Medium",
"code": "0036-valid-sudoku",
"link": "valid-sudoku/",
"video": "TjFXEUCMqI8",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Longest Consecutive Sequence",
"pattern": "Arrays & Hashing",
"difficulty": "Medium",
"code": "0128-longest-consecutive-sequence",
"link": "longest-consecutive-sequence/",
"video": "P6RZZMu_maU",
"neetcode150": true,
"blind75": true,
"neetcode250": true
}
],
"Two Pointers": [
{
"name": "Reverse String",
"pattern": "Two Pointers",
"difficulty": "Easy",
"code": "0344-reverse-string",
"link": "reverse-string/",
"video": "_d0T_2Lk2qA",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Valid Palindrome",
"pattern": "Two Pointers",
"difficulty": "Easy",
"code": "0125-valid-palindrome",
"link": "valid-palindrome/",
"video": "jJXJ16kPFWg",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Two Sum II Input Array Is Sorted",
"pattern": "Two Pointers",
"difficulty": "Medium",
"code": "0167-two-sum-ii-input-array-is-sorted",
"link": "two-sum-ii-input-array-is-sorted/",
"video": "cQ1Oz4ckceM",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "3Sum",
"pattern": "Two Pointers",
"difficulty": "Medium",
"code": "0015-3sum",
"link": "3sum/",
"video": "jzZsG8n2R9A",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Container With Most Water",
"pattern": "Two Pointers",
"difficulty": "Medium",
"code": "0011-container-with-most-water",
"link": "container-with-most-water/",
"video": "UuiTKBwPgAo",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "3Sum Smaller",
"pattern": "Two Pointers",
"difficulty": "Medium",
"code": "0259-3sum-smaller",
"link": "3sum-smaller/",
"neetcode150": true
},
{
"name": "Trapping Rain Water",
"pattern": "Two Pointers",
"difficulty": "Hard",
"code": "0042-trapping-rain-water",
"link": "trapping-rain-water/",
"video": "ZI2z5pq0TqA",
"neetcode150": true,
"neetcode250": true
}
],
"Sliding Window": [
{
"name": "Best Time to Buy And Sell Stock",
"pattern": "Sliding Window",
"difficulty": "Easy",
"code": "0121-best-time-to-buy-and-sell-stock",
"link": "best-time-to-buy-and-sell-stock/",
"video": "1pkOgXD63yU",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Longest Substring Without Repeating Characters",
"pattern": "Sliding Window",
"difficulty": "Medium",
"code": "0003-longest-substring-without-repeating-characters",
"link": "longest-substring-without-repeating-characters/",
"video": "wiGpQwVHdE0",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Longest Repeating Character Replacement",
"pattern": "Sliding Window",
"difficulty": "Medium",
"code": "0424-longest-repeating-character-replacement",
"link": "longest-repeating-character-replacement/",
"video": "gqXU1UyA8pk",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Permutation In String",
"pattern": "Sliding Window",
"difficulty": "Medium",
"code": "0567-permutation-in-string",
"link": "permutation-in-string/",
"video": "UbyhOgBN834",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Count of Substrings Containing Every Vowel and K Consonants II",
"pattern": "Sliding Window",
"difficulty": "Medium",
"code": "3306-count-of-substrings-containing-every-vowel-and-k-consonants-ii",
"link": "count-of-substrings-containing-every-vowel-and-k-consonants-ii/",
"video": "2wANakxRZNo",
"neetcode150": true,
"blind75": true
},
{
"name": "Minimum Window Substring",
"pattern": "Sliding Window",
"difficulty": "Hard",
"code": "0076-minimum-window-substring",
"link": "minimum-window-substring/",
"video": "jSto0O4AJbM",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Sliding Window Maximum",
"pattern": "Sliding Window",
"difficulty": "Hard",
"code": "0239-sliding-window-maximum",
"link": "sliding-window-maximum/",
"video": "DfljaUwZsOk",
"neetcode150": true,
"neetcode250": true
}
],
"Stack": [
{
"name": "Baseball Game",
"pattern": "Stack",
"difficulty": "Easy",
"code": "0682-baseball-game",
"link": "baseball-game/",
"video": "Id_tqGdsZQI",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Valid Parentheses",
"pattern": "Stack",
"difficulty": "Easy",
"code": "0020-valid-parentheses",
"link": "valid-parentheses/",
"video": "WTzjTskDFMg",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Make The String Great",
"pattern": "Stack",
"difficulty": "Easy",
"code": "1544-make-the-string-great",
"link": "make-the-string-great/",
"video": "10tBWNjzvtw",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Min Stack",
"pattern": "Stack",
"difficulty": "Medium",
"code": "0155-min-stack",
"link": "min-stack/",
"video": "qkLl7nAwDPo",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Evaluate Reverse Polish Notation",
"pattern": "Stack",
"difficulty": "Medium",
"code": "0150-evaluate-reverse-polish-notation",
"link": "evaluate-reverse-polish-notation/",
"video": "iu0082c4HDE",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Daily Temperatures",
"pattern": "Stack",
"difficulty": "Medium",
"code": "0739-daily-temperatures",
"link": "daily-temperatures/",
"video": "cTBiBSnjO3c",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Online Stock Span",
"pattern": "Stack",
"difficulty": "Medium",
"code": "0901-online-stock-span",
"link": "online-stock-span/",
"video": "slYh0ZNEqSw",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Car Fleet",
"pattern": "Stack",
"difficulty": "Medium",
"code": "0853-car-fleet",
"link": "car-fleet/",
"video": "Pr6T-3yB9RM",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Largest Rectangle In Histogram",
"pattern": "Stack",
"difficulty": "Hard",
"code": "0084-largest-rectangle-in-histogram",
"link": "largest-rectangle-in-histogram/",
"video": "zx5Sw9130L0",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Number of Atoms",
"pattern": "Stack",
"difficulty": "Hard",
"code": "0726-number-of-atoms",
"link": "number-of-atoms/",
"video": "iuK05gGBzJc",
"neetcode150": true,
"neetcode250": true
}
],
"Binary Search": [
{
"name": "Binary Search",
"pattern": "Binary Search",
"difficulty": "Easy",
"code": "0704-binary-search",
"link": "binary-search/",
"video": "s4DPM8ct1pI",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Successful Pairs of Spells and Potions",
"pattern": "Binary Search",
"difficulty": "Medium",
"code": "2300-successful-pairs-of-spells-and-potions",
"link": "successful-pairs-of-spells-and-potions/",
"video": "OKnm5oyAhWg",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Search a 2D Matrix",
"pattern": "Binary Search",
"difficulty": "Medium",
"code": "0074-search-a-2d-matrix",
"link": "search-a-2d-matrix/",
"video": "Ber2pi2C0j0",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Koko Eating Bananas",
"pattern": "Binary Search",
"difficulty": "Medium",
"code": "0875-koko-eating-bananas",
"link": "koko-eating-bananas/",
"video": "U2SozAs9RzA",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Find Minimum In Rotated Sorted Array",
"pattern": "Binary Search",
"difficulty": "Medium",
"code": "0153-find-minimum-in-rotated-sorted-array",
"link": "find-minimum-in-rotated-sorted-array/",
"video": "nIVW4P8b1VA",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Search In Rotated Sorted Array",
"pattern": "Binary Search",
"difficulty": "Medium",
"code": "0033-search-in-rotated-sorted-array",
"link": "search-in-rotated-sorted-array/",
"video": "U8XENwh8Oy8",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Time Based Key Value Store",
"pattern": "Binary Search",
"difficulty": "Medium",
"code": "0981-time-based-key-value-store",
"link": "time-based-key-value-store/",
"video": "fu2cD_6E8Hw",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Find K-th Smallest Pair Distance",
"pattern": "Binary Search",
"difficulty": "Hard",
"code": "0719-find-k-th-smallest-pair-distance",
"link": "find-k-th-smallest-pair-distance/",
"video": "bQ-QcFKwsZc",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Median of Two Sorted Arrays",
"pattern": "Binary Search",
"difficulty": "Hard",
"code": "0004-median-of-two-sorted-arrays",
"link": "median-of-two-sorted-arrays/",
"video": "q6IEA26hvXc",
"neetcode150": true,
"neetcode250": true
}
],
"Linked List": [
{
"name": "Reverse Linked List",
"pattern": "Linked List",
"difficulty": "Easy",
"code": "0206-reverse-linked-list",
"link": "reverse-linked-list/",
"video": "G0_I-ZF0S38",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Merge Two Sorted Lists",
"pattern": "Linked List",
"difficulty": "Easy",
"code": "0021-merge-two-sorted-lists",
"link": "merge-two-sorted-lists/",
"video": "XIdigk956u0",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Linked List Cycle",
"pattern": "Linked List",
"difficulty": "Easy",
"code": "0141-linked-list-cycle",
"link": "linked-list-cycle/",
"video": "gBTe7lFR3vc",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Remove Nodes From Linked List",
"pattern": "Linked List",
"difficulty": "Medium",
"code": "2487-remove-nodes-from-linked-list",
"link": "remove-nodes-from-linked-list/",
"video": "y783sRTezDg",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Reorder List",
"pattern": "Linked List",
"difficulty": "Medium",
"code": "0143-reorder-list",
"link": "reorder-list/",
"video": "S5bfdUTrKLM",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Remove Nth Node From End of List",
"pattern": "Linked List",
"difficulty": "Medium",
"code": "0019-remove-nth-node-from-end-of-list",
"link": "remove-nth-node-from-end-of-list/",
"video": "XVuQxVej6y8",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Swapping Nodes in a Linked List",
"pattern": "Linked List",
"difficulty": "Medium",
"code": "1721-swapping-nodes-in-a-linked-list",
"link": "swapping-nodes-in-a-linked-list/",
"video": "4LsrgMyQIjQ",
"neetcode150": true
},
{
"name": "Copy List With Random Pointer",
"pattern": "Linked List",
"difficulty": "Medium",
"code": "0138-copy-list-with-random-pointer",
"link": "copy-list-with-random-pointer/",
"video": "5Y2EiZST97Y",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Design Browser History",
"pattern": "Linked List",
"difficulty": "Medium",
"code": "1472-design-browser-history",
"link": "design-browser-history/",
"video": "i1G-kKnBu8k",
"neetcode150": true
},
{
"name": "Add Two Numbers",
"pattern": "Linked List",
"difficulty": "Medium",
"code": "0002-add-two-numbers",
"link": "add-two-numbers/",
"video": "wgFPrzTjm7s",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Find The Duplicate Number",
"pattern": "Linked List",
"difficulty": "Medium",
"code": "0287-find-the-duplicate-number",
"link": "find-the-duplicate-number/",
"video": "wjYnzkAhcNk",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Split Linked List in Parts",
"pattern": "Linked List",
"difficulty": "Medium",
"code": "0725-split-linked-list-in-parts",
"link": "split-linked-list-in-parts/",
"video": "-OTlqdrxrVI",
"neetcode150": true,
"neetcode250": true
},
{
"name": "LRU Cache",
"pattern": "Linked List",
"difficulty": "Medium",
"code": "0146-lru-cache",
"link": "lru-cache/",
"video": "7ABFKPK2hD4",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Merge K Sorted Lists",
"pattern": "Linked List",
"difficulty": "Hard",
"code": "0023-merge-k-sorted-lists",
"link": "merge-k-sorted-lists/",
"video": "q5a5OiGbT6Q",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Reverse Nodes In K Group",
"pattern": "Linked List",
"difficulty": "Hard",
"code": "0025-reverse-nodes-in-k-group",
"link": "reverse-nodes-in-k-group/",
"video": "1UOPsfP85V4",
"neetcode150": true,
"neetcode250": true
}
],
"Trees": [
{
"name": "N-ary Tree Postorder Traversal",
"pattern": "Trees",
"difficulty": "Easy",
"code": "0590-n-ary-tree-postorder-traversal",
"link": "n-ary-tree-postorder-traversal/",
"video": "GMUI91_pDmM",
"neetcode150": true
},
{
"name": "Invert Binary Tree",
"pattern": "Trees",
"difficulty": "Easy",
"code": "0226-invert-binary-tree",
"link": "invert-binary-tree/",
"video": "OnSn2XEQ4MY",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Maximum Depth of Binary Tree",
"pattern": "Trees",
"difficulty": "Easy",
"code": "0104-maximum-depth-of-binary-tree",
"link": "maximum-depth-of-binary-tree/",
"video": "hTM3phVI6YQ",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Diameter of Binary Tree",
"pattern": "Trees",
"difficulty": "Easy",
"code": "0543-diameter-of-binary-tree",
"link": "diameter-of-binary-tree/",
"video": "K81C31ytOZE",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Balanced Binary Tree",
"pattern": "Trees",
"difficulty": "Easy",
"code": "0110-balanced-binary-tree",
"link": "balanced-binary-tree/",
"video": "QfJsau0ItOY",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Same Tree",
"pattern": "Trees",
"difficulty": "Easy",
"code": "0100-same-tree",
"link": "same-tree/",
"video": "vRbbcKXCxOw",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Subtree of Another Tree",
"pattern": "Trees",
"difficulty": "Easy",
"code": "0572-subtree-of-another-tree",
"link": "subtree-of-another-tree/",
"video": "E36O5SWp-LE",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Lowest Common Ancestor of a Binary Search Tree",
"pattern": "Trees",
"difficulty": "Medium",
"code": "0235-lowest-common-ancestor-of-a-binary-search-tree",
"link": "lowest-common-ancestor-of-a-binary-search-tree/",
"video": "gs2LMfuOR9k",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Binary Tree Level Order Traversal",
"pattern": "Trees",
"difficulty": "Medium",
"code": "0102-binary-tree-level-order-traversal",
"link": "binary-tree-level-order-traversal/",
"video": "6ZnyEApgFYg",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Binary Tree Right Side View",
"pattern": "Trees",
"difficulty": "Medium",
"code": "0199-binary-tree-right-side-view",
"link": "binary-tree-right-side-view/",
"video": "d4zLyf32e3I",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Time Needed to Inform All Employees",
"pattern": "Trees",
"difficulty": "Medium",
"code": "1376-time-needed-to-inform-all-employees",
"link": "time-needed-to-inform-all-employees/",
"video": "zdBYi0p4L5Q",
"neetcode150": true
},
{
"name": "Count Good Nodes In Binary Tree",
"pattern": "Trees",
"difficulty": "Medium",
"code": "1448-count-good-nodes-in-binary-tree",
"link": "count-good-nodes-in-binary-tree/",
"video": "7cp5imvDzl4",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Validate Binary Search Tree",
"pattern": "Trees",
"difficulty": "Medium",
"code": "0098-validate-binary-search-tree",
"link": "validate-binary-search-tree/",
"video": "s6ATEkipzow",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Kth Smallest Element In a Bst",
"pattern": "Trees",
"difficulty": "Medium",
"code": "0230-kth-smallest-element-in-a-bst",
"link": "kth-smallest-element-in-a-bst/",
"video": "5LUXSvjmGCw",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Construct Binary Tree From Preorder And Inorder Traversal",
"pattern": "Trees",
"difficulty": "Medium",
"code": "0105-construct-binary-tree-from-preorder-and-inorder-traversal",
"link": "construct-binary-tree-from-preorder-and-inorder-traversal/",
"video": "ihj4IQGZ2zc",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Recover a Tree From Preorder Traversal",
"pattern": "Trees",
"difficulty": "Hard",
"code": "1028-recover-a-tree-from-preorder-traversal",
"link": "recover-a-tree-from-preorder-traversal/",
"video": "VroH6J47kIE",
"neetcode150": true,
"blind75": true
},
{
"name": "Binary Tree Maximum Path Sum",
"pattern": "Trees",
"difficulty": "Hard",
"code": "0124-binary-tree-maximum-path-sum",
"link": "binary-tree-maximum-path-sum/",
"video": "Hr5cWUld4vU",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Serialize And Deserialize Binary Tree",
"pattern": "Trees",
"difficulty": "Hard",
"code": "0297-serialize-and-deserialize-binary-tree",
"link": "serialize-and-deserialize-binary-tree/",
"video": "u4JAi2JJhI8",
"neetcode150": true,
"blind75": true,
"neetcode250": true
}
],
"Heap / Priority Queue": [
{
"name": "Kth Largest Element In a Stream",
"pattern": "Heap / Priority Queue",
"difficulty": "Easy",
"code": "0703-kth-largest-element-in-a-stream",
"link": "kth-largest-element-in-a-stream/",
"video": "hOjcdrqMoQ8",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Last Stone Weight",
"pattern": "Heap / Priority Queue",
"difficulty": "Easy",
"code": "1046-last-stone-weight",
"link": "last-stone-weight/",
"video": "B-QCq79-Vfw",
"neetcode150": true,
"neetcode250": true
},
{
"name": "K Closest Points to Origin",
"pattern": "Heap / Priority Queue",
"difficulty": "Medium",
"code": "0973-k-closest-points-to-origin",
"link": "k-closest-points-to-origin/",
"video": "rI2EBUEMfTk",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Kth Largest Element In An Array",
"pattern": "Heap / Priority Queue",
"difficulty": "Medium",
"code": "0215-kth-largest-element-in-an-array",
"link": "kth-largest-element-in-an-array/",
"video": "XEmy13g1Qxc",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Task Scheduler",
"pattern": "Heap / Priority Queue",
"difficulty": "Medium",
"code": "0621-task-scheduler",
"link": "task-scheduler/",
"video": "s8p8ukTyA2I",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Design Twitter",
"pattern": "Heap / Priority Queue",
"difficulty": "Medium",
"code": "0355-design-twitter",
"link": "design-twitter/",
"video": "pNichitDD2E",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Find Median From Data Stream",
"pattern": "Heap / Priority Queue",
"difficulty": "Hard",
"code": "0295-find-median-from-data-stream",
"link": "find-median-from-data-stream/",
"video": "itmhHWaHupI",
"neetcode150": true,
"blind75": true,
"neetcode250": true
}
],
"Backtracking": [
{
"name": "Sum of All Subsets XOR Total",
"pattern": "Backtracking",
"difficulty": "Easy",
"code": "1863-sum-of-all-subset-xor-totals",
"link": "sum-of-all-subset-xor-totals/",
"video": "LI7YR-bwNYY",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Subsets",
"pattern": "Backtracking",
"difficulty": "Medium",
"code": "0078-subsets",
"link": "subsets/",
"video": "REOH22Xwdkk",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Combination Sum",
"pattern": "Backtracking",
"difficulty": "Medium",
"code": "0039-combination-sum",
"link": "combination-sum/",
"video": "GBKI9VSKdGg",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Combination Sum II",
"pattern": "Backtracking",
"difficulty": "Medium",
"code": "0040-combination-sum-ii",
"link": "combination-sum-ii/",
"video": "FOyRpNUSFeA",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Combinations",
"pattern": "Backtracking",
"difficulty": "Medium",
"code": "0077-combinations",
"link": "combinations/",
"video": "q0s6m7AiM7o",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Permutations",
"pattern": "Backtracking",
"difficulty": "Medium",
"code": "0046-permutations",
"link": "permutations/",
"video": "FZe0UqISmUw",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Subsets II",
"pattern": "Backtracking",
"difficulty": "Medium",
"code": "0090-subsets-ii",
"link": "subsets-ii/",
"video": "Vn2v6ajA7U0",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Generate Parentheses",
"pattern": "Backtracking",
"difficulty": "Medium",
"code": "0022-generate-parentheses",
"link": "generate-parentheses/",
"video": "s9fokUqJ76A",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Letter Tile Possibilities",
"pattern": "Backtracking",
"difficulty": "Medium",
"code": "1079-letter-tile-possibilities",
"link": "letter-tile-possibilities/",
"video": "8FrJX-P_DnE",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Word Search",
"pattern": "Backtracking",
"difficulty": "Medium",
"code": "0079-word-search",
"link": "word-search/",
"video": "pfiQ_PS1g8E",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Palindrome Partitioning",
"pattern": "Backtracking",
"difficulty": "Medium",
"code": "0131-palindrome-partitioning",
"link": "palindrome-partitioning/",
"video": "3jvWodd7ht0",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Letter Combinations of a Phone Number",
"pattern": "Backtracking",
"difficulty": "Medium",
"code": "0017-letter-combinations-of-a-phone-number",
"link": "letter-combinations-of-a-phone-number/",
"video": "0snEunUacZY",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Android Unlock Patterns",
"pattern": "Backtracking",
"difficulty": "Medium",
"code": "0351-android-unlock-patterns",
"link": "android-unlock-patterns/",
"neetcode150": true,
"neetcode250": true
},
{
"name": "N Queens",
"pattern": "Backtracking",
"difficulty": "Hard",
"code": "0051-n-queens",
"link": "n-queens/",
"video": "Ph95IHmRp5M",
"neetcode150": true,
"neetcode250": true
},
{
"name": "N Queens II",
"pattern": "Backtracking",
"difficulty": "Hard",
"code": "0052-n-queens-ii",
"link": "n-queens-ii/",
"video": "nalYyLZgvCY",
"neetcode150": true,
"neetcode250": true
}
],
"Tries": [
{
"name": "Implement Trie Prefix Tree",
"pattern": "Tries",
"difficulty": "Medium",
"code": "0208-implement-trie-prefix-tree",
"link": "implement-trie-prefix-tree/",
"video": "oobqoCJlHA0",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Design Add And Search Words Data Structure",
"pattern": "Tries",
"difficulty": "Medium",
"code": "0211-design-add-and-search-words-data-structure",
"link": "design-add-and-search-words-data-structure/",
"video": "BTf05gs_8iU",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Design File System",
"pattern": "Tries",
"difficulty": "Medium",
"code": "1166-design-file-system",
"link": "design-file-system/",
"neetcode150": true,
"blind75": true
},
{
"name": "Word Search II",
"pattern": "Tries",
"difficulty": "Hard",
"code": "0212-word-search-ii",
"link": "word-search-ii/",
"video": "asbcE9mZz_U",
"neetcode150": true,
"blind75": true,
"neetcode250": true
}
],
"Graphs": [
{
"name": "Find Champion II",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "2924-find-champion-ii",
"link": "find-champion-ii/",
"video": "HjSmSLPR7S4",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Number of Islands",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "0200-number-of-islands",
"link": "number-of-islands/",
"video": "pV2kpPD66nE",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Max Area of Island",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "0695-max-area-of-island",
"link": "max-area-of-island/",
"video": "iJGr1OtmH0c",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Maximum Number of Fish in a Grid",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "2658-maximum-number-of-fish-in-a-grid",
"link": "maximum-number-of-fish-in-a-grid/",
"video": "JhAz6CkRGHI",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Clone Graph",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "0133-clone-graph",
"link": "clone-graph/",
"video": "mQeF6bN8hMk",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Walls And Gates",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "0286-walls-and-gates",
"link": "walls-and-gates/",
"video": "e69C6xhiSQE",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Rotting Oranges",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "0994-rotting-oranges",
"link": "rotting-oranges/",
"video": "y704fEOx0s0",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Count Sub Islands",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "1905-count-sub-islands",
"link": "count-sub-islands/",
"video": "mLpW3qfbNJ8",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Pacific Atlantic Water Flow",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "0417-pacific-atlantic-water-flow",
"link": "pacific-atlantic-water-flow/",
"video": "s-VkcjHqkGI",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Surrounded Regions",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "0130-surrounded-regions",
"link": "surrounded-regions/",
"video": "9z2BunfoZ5Y",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Find Eventual Safe States",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "0802-find-eventual-safe-states",
"link": "find-eventual-safe-states/",
"video": "Re_v0j0CRsg",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Course Schedule",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "0207-course-schedule",
"link": "course-schedule/",
"video": "EgI5nU9etnU",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Course Schedule II",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "0210-course-schedule-ii",
"link": "course-schedule-ii/",
"video": "Akt3glAwyfY",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Graph Valid Tree",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "0261-graph-valid-tree",
"link": "graph-valid-tree/",
"video": "bXsUuownnoQ",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Number of Connected Components In An Undirected Graph",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "0323-number-of-connected-components-in-an-undirected-graph",
"link": "number-of-connected-components-in-an-undirected-graph/",
"video": "8f1XPm4WOUc",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Redundant Connection",
"pattern": "Graphs",
"difficulty": "Medium",
"code": "0684-redundant-connection",
"link": "redundant-connection/",
"video": "1lNK80tOTfc",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Find All People With Secret",
"pattern": "Graphs",
"difficulty": "Hard",
"code": "2092-find-all-people-with-secret",
"link": "find-all-people-with-secret/",
"video": "1XujGRSU1bQ",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Word Ladder",
"pattern": "Graphs",
"difficulty": "Hard",
"code": "0127-word-ladder",
"link": "word-ladder/",
"video": "h9iTnkgv05E",
"neetcode150": true,
"neetcode250": true
}
],
"Advanced Graphs": [
{
"name": "Network Delay Time",
"pattern": "Advanced Graphs",
"difficulty": "Medium",
"code": "0743-network-delay-time",
"link": "network-delay-time/",
"video": "EaphyqKU4PQ",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Reconstruct Itinerary",
"pattern": "Advanced Graphs",
"difficulty": "Hard",
"code": "0332-reconstruct-itinerary",
"link": "reconstruct-itinerary/",
"video": "ZyB_gQ8vqGA",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Min Cost to Connect All Points",
"pattern": "Advanced Graphs",
"difficulty": "Medium",
"code": "1584-min-cost-to-connect-all-points",
"link": "min-cost-to-connect-all-points/",
"video": "f7JOBJIC-NA",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Find the Safest Path in a Grid",
"pattern": "Advanced Graphs",
"difficulty": "Medium",
"code": "2812-find-the-safest-path-in-a-grid",
"link": "find-the-safest-path-in-a-grid/",
"video": "-5mQcNiVWTs",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Swim In Rising Water",
"pattern": "Advanced Graphs",
"difficulty": "Hard",
"code": "0778-swim-in-rising-water",
"link": "swim-in-rising-water/",
"video": "amvrKlMLuGY",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Alien Dictionary",
"pattern": "Advanced Graphs",
"difficulty": "Hard",
"code": "0269-alien-dictionary",
"link": "alien-dictionary/",
"video": "6kTZYvNNyps",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Cheapest Flights Within K Stops",
"pattern": "Advanced Graphs",
"difficulty": "Medium",
"code": "0787-cheapest-flights-within-k-stops",
"link": "cheapest-flights-within-k-stops/",
"video": "5eIK3zUdYmE",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Divide Nodes Into the Maximum Number of Groups",
"pattern": "Advanced Graphs",
"difficulty": "Hard",
"code": "2493-divide-nodes-into-the-maximum-number-of-groups",
"link": "divide-nodes-into-the-maximum-number-of-groups/",
"video": "Gn0ADjje8Rg",
"neetcode150": true,
"blind75": true,
"neetcode250": true
}
],
"1-D Dynamic Programming": [
{
"name": "Climbing Stairs",
"pattern": "1-D Dynamic Programming",
"difficulty": "Easy",
"code": "0070-climbing-stairs",
"link": "climbing-stairs/",
"video": "Y0lT9Fck7qI",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Min Cost Climbing Stairs",
"pattern": "1-D Dynamic Programming",
"difficulty": "Easy",
"code": "0746-min-cost-climbing-stairs",
"link": "min-cost-climbing-stairs/",
"video": "ktmzAZWkEZ0",
"neetcode150": true,
"neetcode250": true
},
{
"name": "House Robber",
"pattern": "1-D Dynamic Programming",
"difficulty": "Medium",
"code": "0198-house-robber",
"link": "house-robber/",
"video": "73r3KWiEvyk",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "House Robber II",
"pattern": "1-D Dynamic Programming",
"difficulty": "Medium",
"code": "0213-house-robber-ii",
"link": "house-robber-ii/",
"video": "rWAJCfYYOvM",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Longest Palindromic Substring",
"pattern": "1-D Dynamic Programming",
"difficulty": "Medium",
"code": "0005-longest-palindromic-substring",
"link": "longest-palindromic-substring/",
"video": "XYQecbcd6_c",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Palindromic Substrings",
"pattern": "1-D Dynamic Programming",
"difficulty": "Medium",
"code": "0647-palindromic-substrings",
"link": "palindromic-substrings/",
"video": "4RACzI5-du8",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Decode Ways",
"pattern": "1-D Dynamic Programming",
"difficulty": "Medium",
"code": "0091-decode-ways",
"link": "decode-ways/",
"video": "6aEyTjOwlJU",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Coin Change",
"pattern": "1-D Dynamic Programming",
"difficulty": "Medium",
"code": "0322-coin-change",
"link": "coin-change/",
"video": "H9bfqozjoqs",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Maximum Product Subarray",
"pattern": "1-D Dynamic Programming",
"difficulty": "Medium",
"code": "0152-maximum-product-subarray",
"link": "maximum-product-subarray/",
"video": "lXVy6YWFcRM",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Word Break",
"pattern": "1-D Dynamic Programming",
"difficulty": "Medium",
"code": "0139-word-break",
"link": "word-break/",
"video": "Sx9NNgInc3A",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Longest Increasing Subsequence",
"pattern": "1-D Dynamic Programming",
"difficulty": "Medium",
"code": "0300-longest-increasing-subsequence",
"link": "longest-increasing-subsequence/",
"video": "cjWnW0hdF1Y",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Partition Equal Subset Sum",
"pattern": "1-D Dynamic Programming",
"difficulty": "Medium",
"code": "0416-partition-equal-subset-sum",
"link": "partition-equal-subset-sum/",
"video": "IsvocB5BJhw",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Coin Path",
"pattern": "1-D Dynamic Programming",
"difficulty": "Hard",
"code": "0656-coin-path",
"link": "coin-path/",
"neetcode150": true,
"blind75": true
}
],
"2-D Dynamic Programming": [
{
"name": "Unique Paths",
"pattern": "2-D Dynamic Programming",
"difficulty": "Medium",
"code": "0062-unique-paths",
"link": "unique-paths/",
"video": "IlEsdxuD4lY",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Longest Common Subsequence",
"pattern": "2-D Dynamic Programming",
"difficulty": "Medium",
"code": "1143-longest-common-subsequence",
"link": "longest-common-subsequence/",
"video": "Ua0GhsJSlWM",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Best Time to Buy And Sell Stock With Cooldown",
"pattern": "2-D Dynamic Programming",
"difficulty": "Medium",
"code": "0309-best-time-to-buy-and-sell-stock-with-cooldown",
"link": "best-time-to-buy-and-sell-stock-with-cooldown/",
"video": "I7j0F7AHpb8",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Coin Change II",
"pattern": "2-D Dynamic Programming",
"difficulty": "Medium",
"code": "0518-coin-change-ii",
"link": "coin-change-ii/",
"video": "Mjy4hd2xgrs",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Target Sum",
"pattern": "2-D Dynamic Programming",
"difficulty": "Medium",
"code": "0494-target-sum",
"link": "target-sum/",
"video": "dwMOrl85Xes",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Interleaving String",
"pattern": "2-D Dynamic Programming",
"difficulty": "Medium",
"code": "0097-interleaving-string",
"link": "interleaving-string/",
"video": "3Rw3p9LrgvE",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Longest Increasing Path In a Matrix",
"pattern": "2-D Dynamic Programming",
"difficulty": "Hard",
"code": "0329-longest-increasing-path-in-a-matrix",
"link": "longest-increasing-path-in-a-matrix/",
"video": "wCc_nd-GiEc",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Maximum Alternating Subsequence Sum",
"pattern": "2-D Dynamic Programming",
"difficulty": "Medium",
"code": "1911-maximum-alternating-subsequence-sum",
"link": "maximum-alternating-subsequence-sum/",
"video": "4v42XOuU1XA",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Distinct Subsequences",
"pattern": "2-D Dynamic Programming",
"difficulty": "Hard",
"code": "0115-distinct-subsequences",
"link": "distinct-subsequences/",
"video": "-RDzMJ33nx8",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Edit Distance",
"pattern": "2-D Dynamic Programming",
"difficulty": "Medium",
"code": "0072-edit-distance",
"link": "edit-distance/",
"video": "XYi2-LPrwm4",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Count Vowels Permutation",
"pattern": "2-D Dynamic Programming",
"difficulty": "Hard",
"code": "1220-count-vowels-permutation",
"link": "count-vowels-permutation/",
"video": "VUVpTZVa7Ls",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Burst Balloons",
"pattern": "2-D Dynamic Programming",
"difficulty": "Hard",
"code": "0312-burst-balloons",
"link": "burst-balloons/",
"video": "VFskby7lUbw",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Regular Expression Matching",
"pattern": "2-D Dynamic Programming",
"difficulty": "Hard",
"code": "0010-regular-expression-matching",
"link": "regular-expression-matching/",
"video": "HAA8mgxlov8",
"neetcode150": true,
"neetcode250": true
}
],
"Greedy": [
{
"name": "Minimum Increment to Make Array Unique",
"pattern": "Greedy",
"difficulty": "Medium",
"code": "0945-minimum-increment-to-make-array-unique",
"link": "minimum-increment-to-make-array-unique/",
"video": "XPPs2Wj2YSk",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Maximum Subarray",
"pattern": "Greedy",
"difficulty": "Medium",
"code": "0053-maximum-subarray",
"link": "maximum-subarray/",
"video": "5WZl3MMT0Eg",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Longest Turbulent Subarray",
"pattern": "Greedy",
"difficulty": "Medium",
"code": "0978-longest-turbulent-subarray",
"link": "longest-turbulent-subarray/",
"video": "V_iHUhR8Dek",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Jump Game",
"pattern": "Greedy",
"difficulty": "Medium",
"code": "0055-jump-game",
"link": "jump-game/",
"video": "Yan0cv2cLy8",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Jump Game II",
"pattern": "Greedy",
"difficulty": "Medium",
"code": "0045-jump-game-ii",
"link": "jump-game-ii/",
"video": "dJ7sWiOoK7g",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Jump Game VII",
"pattern": "Greedy",
"difficulty": "Medium",
"code": "1871-jump-game-vii",
"link": "jump-game-vii/",
"video": "v1HpZUnQ4Yo",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Gas Station",
"pattern": "Greedy",
"difficulty": "Medium",
"code": "0134-gas-station",
"link": "gas-station/",
"video": "lJwbPZGo05A",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Hand of Straights",
"pattern": "Greedy",
"difficulty": "Medium",
"code": "0846-hand-of-straights",
"link": "hand-of-straights/",
"video": "amnrMCVd2YI",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Merge Triplets to Form Target Triplet",
"pattern": "Greedy",
"difficulty": "Medium",
"code": "1899-merge-triplets-to-form-target-triplet",
"link": "merge-triplets-to-form-target-triplet/",
"video": "kShkQLQZ9K4",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Partition Labels",
"pattern": "Greedy",
"difficulty": "Medium",
"code": "0763-partition-labels",
"link": "partition-labels/",
"video": "B7m8UmZE-vw",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Valid Parenthesis String",
"pattern": "Greedy",
"difficulty": "Medium",
"code": "0678-valid-parenthesis-string",
"link": "valid-parenthesis-string/",
"video": "QhPdNS143Qg",
"neetcode150": true,
"neetcode250": true
}
],
"Intervals": [
{
"name": "Insert Interval",
"pattern": "Intervals",
"difficulty": "Medium",
"code": "0057-insert-interval",
"link": "insert-interval/",
"video": "A8NUOmlwOlM",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Merge Intervals",
"pattern": "Intervals",
"difficulty": "Medium",
"code": "0056-merge-intervals",
"link": "merge-intervals/",
"video": "44H3cEC2fFM",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Non Overlapping Intervals",
"pattern": "Intervals",
"difficulty": "Medium",
"code": "0435-non-overlapping-intervals",
"link": "non-overlapping-intervals/",
"video": "nONCGxWoUfM",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Interval List Intersections",
"pattern": "Intervals",
"difficulty": "Medium",
"code": "0986-interval-list-intersections",
"link": "interval-list-intersections/",
"neetcode150": true,
"blind75": true
},
{
"name": "Meeting Rooms",
"pattern": "Intervals",
"difficulty": "Easy",
"code": "0252-meeting-rooms",
"link": "meeting-rooms/",
"video": "PaJxqZVPhbg",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Meeting Rooms II",
"pattern": "Intervals",
"difficulty": "Medium",
"code": "0253-meeting-rooms-ii",
"link": "meeting-rooms-ii/",
"video": "FdzJmTCVyJU",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Minimum Interval to Include Each Query",
"pattern": "Intervals",
"difficulty": "Hard",
"code": "1851-minimum-interval-to-include-each-query",
"link": "minimum-interval-to-include-each-query/",
"video": "5hQ5WWW5awQ",
"neetcode150": true,
"neetcode250": true
}
],
"Math & Geometry": [
{
"name": "Magic Squares In Grid",
"pattern": "Math & Geometry",
"difficulty": "Medium",
"code": "0840-magic-squares-in-grid",
"link": "magic-squares-in-grid/",
"video": "FV52wWrivNc",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Rotate Image",
"pattern": "Math & Geometry",
"difficulty": "Medium",
"code": "0048-rotate-image",
"link": "rotate-image/",
"video": "fMSJSS7eO1w",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Spiral Matrix",
"pattern": "Math & Geometry",
"difficulty": "Medium",
"code": "0054-spiral-matrix",
"link": "spiral-matrix/",
"video": "BJnMZNwUk1M",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Spiral Matrix IV",
"pattern": "Math & Geometry",
"difficulty": "Medium",
"code": "2326-spiral-matrix-iv",
"link": "spiral-matrix-iv/",
"video": "sOV1nRhmsMQ",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Set Matrix Zeroes",
"pattern": "Math & Geometry",
"difficulty": "Medium",
"code": "0073-set-matrix-zeroes",
"link": "set-matrix-zeroes/",
"video": "T41rL0L3Pnw",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Happy Number",
"pattern": "Math & Geometry",
"difficulty": "Easy",
"code": "0202-happy-number",
"link": "happy-number/",
"video": "ljz85bxOYJ0",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Plus One",
"pattern": "Math & Geometry",
"difficulty": "Easy",
"code": "0066-plus-one",
"link": "plus-one/",
"video": "jIaA8boiG1s",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Palindrome Number",
"pattern": "Math & Geometry",
"difficulty": "Easy",
"code": "0009-palindrome-number",
"link": "palindrome-number/",
"video": "yubRKwixN-U",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Integer to Roman",
"pattern": "Math & Geometry",
"difficulty": "Medium",
"code": "0012-integer-to-roman",
"link": "integer-to-roman/",
"video": "ohBNdSJyLh8",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Pow(x, n)",
"pattern": "Math & Geometry",
"difficulty": "Medium",
"code": "0050-powx-n",
"link": "powx-n/",
"video": "g9YQyYi4IQQ",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Find the Punishment Number of an Integer",
"pattern": "Math & Geometry",
"difficulty": "Medium",
"code": "2698-find-the-punishment-number-of-an-integer",
"link": "find-the-punishment-number-of-an-integer/",
"video": "LWgksJP-5SA",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Check if Number is a Sum of Powers of Three",
"pattern": "Math & Geometry",
"difficulty": "Medium",
"code": "1780-check-if-number-is-a-sum-of-powers-of-three",
"link": "check-if-number-is-a-sum-of-powers-of-three/",
"video": "99ExTh_0Ycg",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Multiply Strings",
"pattern": "Math & Geometry",
"difficulty": "Medium",
"code": "0043-multiply-strings",
"link": "multiply-strings/",
"video": "1vZswirL8Y8",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Detect Squares",
"pattern": "Math & Geometry",
"difficulty": "Medium",
"code": "2013-detect-squares",
"link": "detect-squares/",
"video": "bahebearrDc",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Best Meeting Point",
"pattern": "Math & Geometry",
"difficulty": "Hard",
"code": "0296-best-meeting-point",
"link": "best-meeting-point/",
"neetcode150": true
}
],
"Bit Manipulation": [
{
"name": "Single Number",
"pattern": "Bit Manipulation",
"difficulty": "Easy",
"code": "0136-single-number",
"link": "single-number/",
"video": "qMPX1AOa83k",
"neetcode150": true,
"neetcode250": true
},
{
"name": "Single Number III",
"pattern": "Bit Manipulation",
"difficulty": "Medium",
"code": "0260-single-number-iii",
"link": "single-number-iii/",
"video": "faoVORjd-T8",
"neetcode150": true
},
{
"name": "Number of 1 Bits",
"pattern": "Bit Manipulation",
"difficulty": "Easy",
"code": "0191-number-of-1-bits",
"link": "number-of-1-bits/",
"video": "5Km3utixwZs",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Counting Bits",
"pattern": "Bit Manipulation",
"difficulty": "Easy",
"code": "0338-counting-bits",
"link": "counting-bits/",
"video": "RyBM56RIWrM",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Minimum Bit Flips to Convert Number",
"pattern": "Bit Manipulation",
"difficulty": "Easy",
"code": "2220-minimum-bit-flips-to-convert-number",
"link": "minimum-bit-flips-to-convert-number/",
"video": "yz48myznqQY",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Reverse Bits",
"pattern": "Bit Manipulation",
"difficulty": "Easy",
"code": "0190-reverse-bits",
"link": "reverse-bits/",
"video": "UcoN6UjAI64",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Missing Number",
"pattern": "Bit Manipulation",
"difficulty": "Easy",
"code": "0268-missing-number",
"link": "missing-number/",
"video": "WnPLSRLSANE",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Power of Two",
"pattern": "Bit Manipulation",
"difficulty": "Easy",
"code": "0231-power-of-two",
"link": "power-of-two/",
"video": "H2bjttEV4Vc",
"neetcode150": true
},
{
"name": "Sum of Two Integers",
"pattern": "Bit Manipulation",
"difficulty": "Medium",
"code": "0371-sum-of-two-integers",
"link": "sum-of-two-integers/",
"video": "gVUrDV4tZfY",
"neetcode150": true,
"blind75": true,
"neetcode250": true
},
{
"name": "Reverse Integer",
"pattern": "Bit Manipulation",
"difficulty": "Medium",
"code": "0007-reverse-integer",
"link": "reverse-integer/",
"video": "HAgLH58IgJQ",
"neetcode150": true,
"neetcode250": true
}
]
},
"coursesByTopic": {
"Arrays & Hashing": [
{
"course": "Data Structures & Algorithms for Beginners",
"name": "Dynamic Arrays",
"routerLink": "/courses/dsa-for-beginners/3"
},
{
"course": "Data Structures & Algorithms for Beginners",
"name": "Hash Usage",
"routerLink": "/courses/dsa-for-beginners/26"
},
{
"course": "Data Structures & Algorithms for Beginners",
"name": "Hash Implementation",
"routerLink": "/courses/dsa-for-beginners/27"
},
{
"course": "Advanced Algorithms",
"name": "Prefix Sums",
"routerLink": "/courses/advanced-algorithms/4"
}
],
"Two Pointers": [
{
"course": "Advanced Algorithms",
"name": "Two Pointers",
"routerLink": "/courses/advanced-algorithms/3"
}
],
"Binary Search": [
{
"course": "Data Structures & Algorithms for Beginners",
"name": "Search Array",
"routerLink": "/courses/dsa-for-beginners/14"
},
{
"course": "Data Structures & Algorithms for Beginners",
"name": "Search Range",
"routerLink": "/courses/dsa-for-beginners/15"
}
],
"Sliding Window": [
{
"course": "Advanced Algorithms",
"name": "Sliding Window Fixed Size",
"routerLink": "/courses/advanced-algorithms/1"
},
{
"course": "Advanced Algorithms",
"name": "Sliding Window Variable Size",
"routerLink": "/courses/advanced-algorithms/2"
}
],
"Linked List": [
{
"course": "Data Structures & Algorithms for Beginners",
"name": "Singly Linked Lists",
"routerLink": "/courses/dsa-for-beginners/5"
},
{
"course": "Data Structures & Algorithms for Beginners",
"name": "Doubly Linked Lists",
"routerLink": "/courses/dsa-for-beginners/6"
},
{
"course": "Advanced Algorithms",
"name": "Fast and Slow Pointers",
"routerLink": "/courses/advanced-algorithms/5"
}
],
"Heap / Priority Queue": [
{
"course": "Data Structures & Algorithms for Beginners",
"name": "Heap Properties",
"routerLink": "/courses/dsa-for-beginners/23"
},
{
"course": "Data Structures & Algorithms for Beginners",
"name": "Push and Pop",
"routerLink": "/courses/dsa-for-beginners/24"
},
{
"course": "Data Structures & Algorithms for Beginners",
"name": "Heapify",
"routerLink": "/courses/dsa-for-beginners/25"
},
{
"course": "Advanced Algorithms",
"name": "Two Heaps",
"routerLink": "/courses/advanced-algorithms/10"
}
],
"Advanced Graphs": [
{
"course": "Advanced Algorithms",
"name": "Dijkstra's",
"routerLink": "/courses/advanced-algorithms/14"
},
{
"course": "Advanced Algorithms",
"name": "Prim's",
"routerLink": "/courses/advanced-algorithms/15"
},
{
"course": "Advanced Algorithms",
"name": "Kruskal's",
"routerLink": "/courses/advanced-algorithms/16"
},
{
"course": "Advanced Algorithms",
"name": "Topological Sort",
"routerLink": "/courses/advanced-algorithms/17"
}
],
"1-D Dynamic Programming": [
{
"course": "Data Structures & Algorithms for Beginners",
"name": "1-Dimension DP",
"routerLink": "/courses/dsa-for-beginners/32"
},
{
"course": "Advanced Algorithms",
"name": "Palindromes",
"routerLink": "/courses/advanced-algorithms/21"
}
],
"2-D Dynamic Programming": [
{
"course": "Data Structures & Algorithms for Beginners",
"name": "2-Dimension DP",
"routerLink": "/courses/dsa-for-beginners/33"
},
{
"course": "Advanced Algorithms",
"name": "0 / 1 Knapsack",
"routerLink": "/courses/advanced-algorithms/18"
},
{
"course": "Advanced Algorithms",
"name": "Unbounded Knapsack",
"routerLink": "/courses/advanced-algorithms/19"
},
{
"course": "Advanced Algorithms",
"name": "LCS",
"routerLink": "/courses/advanced-algorithms/20"
}
],
"Bit Manipulation": [
{
"course": "Data Structures & Algorithms for Beginners",
"name": "Bit Operations",
"routerLink": "/courses/dsa-for-beginners/34"
}
]
},
"stats": {
"topics": 18,
"edges": 21,
"problems": 199
}
}