{ "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 } }