- 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
97 KiB
NeetCode Roadmap
- Arrays & Hashing
[0/12] - Two Pointers [/]
- Binary Search [/]
- Stack [/]
- Sliding Window [/]
- Linked List [/]
- Trees [/]
- Tries [/]
- Heap / Priority Queue [/]
- Backtracking [/]
- Graphs [/]
- 1-D Dynamic Programming [/]
- Intervals [/]
- Greedy [/]
- Advanced Graphs [/]
- Bit Manipulation [/]
- Math & Geometry [/]
- 2-D Dynamic Programming [/]
Source: neetcode.io/roadmap
TODO
Arrays & Hashing [0/12]
-
TODO 0217. Contains Duplicate :easy:
- TODO Python: 0217-contains-duplicate.py
- TODO C++: 0217-contains-duplicate.cpp
- LeetCode: contains-duplicate/
- Video: explanation
-
TODO 0242. Valid Anagram :easy:
- TODO Python: 0242-valid-anagram.py
- TODO C++: 0242-valid-anagram.cpp
- LeetCode: valid-anagram/
- Video: explanation
-
TODO 2678. Number of Senior Citizens :easy:
- TODO Python: 2678-number-of-senior-citizens.py
- TODO C++: 2678-number-of-senior-citizens.cpp
- LeetCode: number-of-senior-citizens/
- Video: explanation
-
TODO 0001. Two Sum :easy:
- TODO Python: 0001-two-sum.py
- TODO C++: 0001-two-sum.cpp
- LeetCode: two-sum/
- Video: explanation
-
TODO 1408. String Matching in an Array :easy:
- TODO Python: 1408-string-matching-in-an-array.py
- TODO C++: 1408-string-matching-in-an-array.cpp
- LeetCode: string-matching-in-an-array/
- Video: explanation
-
TODO 0049. Group Anagrams :medium:
- TODO Python: 0049-group-anagrams.py
- TODO C++: 0049-group-anagrams.cpp
- LeetCode: group-anagrams/
- Video: explanation
-
TODO 0347. Top K Frequent Elements :medium:
- TODO Python: 0347-top-k-frequent-elements.py
- TODO C++: 0347-top-k-frequent-elements.cpp
- LeetCode: top-k-frequent-elements/
- Video: explanation
-
TODO 0271. Encode and Decode Strings :medium:
- TODO Python: 0271-encode-and-decode-strings.py
- TODO C++: 0271-encode-and-decode-strings.cpp
- LeetCode: encode-and-decode-strings/
- Video: explanation
-
TODO 0238. Product of Array Except Self :medium:
- TODO Python: 0238-product-of-array-except-self.py
- TODO C++: 0238-product-of-array-except-self.cpp
- LeetCode: product-of-array-except-self/
- Video: explanation
-
TODO 1769. Minimum Number of Operations to Move All Balls to Each Box :medium:
-
TODO 0036. Valid Sudoku :medium:
- TODO Python: 0036-valid-sudoku.py
- TODO C++: 0036-valid-sudoku.cpp
- LeetCode: valid-sudoku/
- Video: explanation
-
TODO 0128. Longest Consecutive Sequence :medium:
- TODO Python: 0128-longest-consecutive-sequence.py
- TODO C++: 0128-longest-consecutive-sequence.cpp
- LeetCode: longest-consecutive-sequence/
- Video: explanation
TODO Two Pointers [/]
-
TODO 0344. Reverse String :easy:
- TODO Python: 0344-reverse-string.py
- TODO C++: 0344-reverse-string.cpp
- LeetCode: reverse-string/
- Video: explanation
-
TODO 0125. Valid Palindrome :easy:
- TODO Python: 0125-valid-palindrome.py
- TODO C++: 0125-valid-palindrome.cpp
- LeetCode: valid-palindrome/
- Video: explanation
-
TODO 0167. Two Sum II Input Array Is Sorted :medium:
- TODO Python: 0167-two-sum-ii-input-array-is-sorted.py
- TODO C++: 0167-two-sum-ii-input-array-is-sorted.cpp
- LeetCode: two-sum-ii-input-array-is-sorted/
- Video: explanation
-
TODO 0015. 3Sum :medium:
- TODO Python: 0015-3sum.py
- TODO C++: 0015-3sum.cpp
- LeetCode: 3sum/
- Video: explanation
-
TODO 0011. Container With Most Water :medium:
- TODO Python: 0011-container-with-most-water.py
- TODO C++: 0011-container-with-most-water.cpp
- LeetCode: container-with-most-water/
- Video: explanation
-
TODO 0259. 3Sum Smaller :medium:
- TODO Python: 0259-3sum-smaller.py
- TODO C++: 0259-3sum-smaller.cpp
- LeetCode: 3sum-smaller/
-
TODO 0042. Trapping Rain Water :hard:
- TODO Python: 0042-trapping-rain-water.py
- TODO C++: 0042-trapping-rain-water.cpp
- LeetCode: trapping-rain-water/
- Video: explanation
TODO Binary Search [/]
-
TODO 0704. Binary Search :easy:
- TODO Python: 0704-binary-search.py
- TODO C++: 0704-binary-search.cpp
- LeetCode: binary-search/
- Video: explanation
-
TODO 2300. Successful Pairs of Spells and Potions :medium:
- TODO Python: 2300-successful-pairs-of-spells-and-potions.py
- TODO C++: 2300-successful-pairs-of-spells-and-potions.cpp
- LeetCode: successful-pairs-of-spells-and-potions/
- Video: explanation
-
TODO 0074. Search a 2D Matrix :medium:
- TODO Python: 0074-search-a-2d-matrix.py
- TODO C++: 0074-search-a-2d-matrix.cpp
- LeetCode: search-a-2d-matrix/
- Video: explanation
-
TODO 0875. Koko Eating Bananas :medium:
- TODO Python: 0875-koko-eating-bananas.py
- TODO C++: 0875-koko-eating-bananas.cpp
- LeetCode: koko-eating-bananas/
- Video: explanation
-
TODO 0153. Find Minimum In Rotated Sorted Array :medium:
- TODO Python: 0153-find-minimum-in-rotated-sorted-array.py
- TODO C++: 0153-find-minimum-in-rotated-sorted-array.cpp
- LeetCode: find-minimum-in-rotated-sorted-array/
- Video: explanation
-
TODO 0033. Search In Rotated Sorted Array :medium:
- TODO Python: 0033-search-in-rotated-sorted-array.py
- TODO C++: 0033-search-in-rotated-sorted-array.cpp
- LeetCode: search-in-rotated-sorted-array/
- Video: explanation
-
TODO 0981. Time Based Key Value Store :medium:
- TODO Python: 0981-time-based-key-value-store.py
- TODO C++: 0981-time-based-key-value-store.cpp
- LeetCode: time-based-key-value-store/
- Video: explanation
-
TODO 0719. Find K-th Smallest Pair Distance :hard:
- TODO Python: 0719-find-k-th-smallest-pair-distance.py
- TODO C++: 0719-find-k-th-smallest-pair-distance.cpp
- LeetCode: find-k-th-smallest-pair-distance/
- Video: explanation
-
TODO 0004. Median of Two Sorted Arrays :hard:
- TODO Python: 0004-median-of-two-sorted-arrays.py
- TODO C++: 0004-median-of-two-sorted-arrays.cpp
- LeetCode: median-of-two-sorted-arrays/
- Video: explanation
TODO Stack [/]
-
TODO 0682. Baseball Game :easy:
- TODO Python: 0682-baseball-game.py
- TODO C++: 0682-baseball-game.cpp
- LeetCode: baseball-game/
- Video: explanation
-
TODO 0020. Valid Parentheses :easy:
- TODO Python: 0020-valid-parentheses.py
- TODO C++: 0020-valid-parentheses.cpp
- LeetCode: valid-parentheses/
- Video: explanation
-
TODO 1544. Make The String Great :easy:
- TODO Python: 1544-make-the-string-great.py
- TODO C++: 1544-make-the-string-great.cpp
- LeetCode: make-the-string-great/
- Video: explanation
-
TODO 0155. Min Stack :medium:
- TODO Python: 0155-min-stack.py
- TODO C++: 0155-min-stack.cpp
- LeetCode: min-stack/
- Video: explanation
-
TODO 0150. Evaluate Reverse Polish Notation :medium:
- TODO Python: 0150-evaluate-reverse-polish-notation.py
- TODO C++: 0150-evaluate-reverse-polish-notation.cpp
- LeetCode: evaluate-reverse-polish-notation/
- Video: explanation
-
TODO 0739. Daily Temperatures :medium:
- TODO Python: 0739-daily-temperatures.py
- TODO C++: 0739-daily-temperatures.cpp
- LeetCode: daily-temperatures/
- Video: explanation
-
TODO 0901. Online Stock Span :medium:
- TODO Python: 0901-online-stock-span.py
- TODO C++: 0901-online-stock-span.cpp
- LeetCode: online-stock-span/
- Video: explanation
-
TODO 0853. Car Fleet :medium:
- TODO Python: 0853-car-fleet.py
- TODO C++: 0853-car-fleet.cpp
- LeetCode: car-fleet/
- Video: explanation
-
TODO 0084. Largest Rectangle In Histogram :hard:
- TODO Python: 0084-largest-rectangle-in-histogram.py
- TODO C++: 0084-largest-rectangle-in-histogram.cpp
- LeetCode: largest-rectangle-in-histogram/
- Video: explanation
-
TODO 0726. Number of Atoms :hard:
- TODO Python: 0726-number-of-atoms.py
- TODO C++: 0726-number-of-atoms.cpp
- LeetCode: number-of-atoms/
- Video: explanation
TODO Sliding Window [/]
-
TODO 0121. Best Time to Buy And Sell Stock :easy:
- TODO Python: 0121-best-time-to-buy-and-sell-stock.py
- TODO C++: 0121-best-time-to-buy-and-sell-stock.cpp
- LeetCode: best-time-to-buy-and-sell-stock/
- Video: explanation
-
TODO 0003. Longest Substring Without Repeating Characters :medium:
- TODO Python: 0003-longest-substring-without-repeating-characters.py
- TODO C++: 0003-longest-substring-without-repeating-characters.cpp
- LeetCode: longest-substring-without-repeating-characters/
- Video: explanation
-
TODO 0424. Longest Repeating Character Replacement :medium:
- TODO Python: 0424-longest-repeating-character-replacement.py
- TODO C++: 0424-longest-repeating-character-replacement.cpp
- LeetCode: longest-repeating-character-replacement/
- Video: explanation
-
TODO 0567. Permutation In String :medium:
- TODO Python: 0567-permutation-in-string.py
- TODO C++: 0567-permutation-in-string.cpp
- LeetCode: permutation-in-string/
- Video: explanation
-
TODO 3306. Count of Substrings Containing Every Vowel and K Consonants II :medium:
-
TODO 0076. Minimum Window Substring :hard:
- TODO Python: 0076-minimum-window-substring.py
- TODO C++: 0076-minimum-window-substring.cpp
- LeetCode: minimum-window-substring/
- Video: explanation
-
TODO 0239. Sliding Window Maximum :hard:
- TODO Python: 0239-sliding-window-maximum.py
- TODO C++: 0239-sliding-window-maximum.cpp
- LeetCode: sliding-window-maximum/
- Video: explanation
TODO Linked List [/]
-
TODO 0206. Reverse Linked List :easy:
- TODO Python: 0206-reverse-linked-list.py
- TODO C++: 0206-reverse-linked-list.cpp
- LeetCode: reverse-linked-list/
- Video: explanation
-
TODO 0021. Merge Two Sorted Lists :easy:
- TODO Python: 0021-merge-two-sorted-lists.py
- TODO C++: 0021-merge-two-sorted-lists.cpp
- LeetCode: merge-two-sorted-lists/
- Video: explanation
-
TODO 0141. Linked List Cycle :easy:
- TODO Python: 0141-linked-list-cycle.py
- TODO C++: 0141-linked-list-cycle.cpp
- LeetCode: linked-list-cycle/
- Video: explanation
-
TODO 2487. Remove Nodes From Linked List :medium:
- TODO Python: 2487-remove-nodes-from-linked-list.py
- TODO C++: 2487-remove-nodes-from-linked-list.cpp
- LeetCode: remove-nodes-from-linked-list/
- Video: explanation
-
TODO 0143. Reorder List :medium:
- TODO Python: 0143-reorder-list.py
- TODO C++: 0143-reorder-list.cpp
- LeetCode: reorder-list/
- Video: explanation
-
TODO 0019. Remove Nth Node From End of List :medium:
- TODO Python: 0019-remove-nth-node-from-end-of-list.py
- TODO C++: 0019-remove-nth-node-from-end-of-list.cpp
- LeetCode: remove-nth-node-from-end-of-list/
- Video: explanation
-
TODO 1721. Swapping Nodes in a Linked List :medium:
- TODO Python: 1721-swapping-nodes-in-a-linked-list.py
- TODO C++: 1721-swapping-nodes-in-a-linked-list.cpp
- LeetCode: swapping-nodes-in-a-linked-list/
- Video: explanation
-
TODO 0138. Copy List With Random Pointer :medium:
- TODO Python: 0138-copy-list-with-random-pointer.py
- TODO C++: 0138-copy-list-with-random-pointer.cpp
- LeetCode: copy-list-with-random-pointer/
- Video: explanation
-
TODO 1472. Design Browser History :medium:
- TODO Python: 1472-design-browser-history.py
- TODO C++: 1472-design-browser-history.cpp
- LeetCode: design-browser-history/
- Video: explanation
-
TODO 0002. Add Two Numbers :medium:
- TODO Python: 0002-add-two-numbers.py
- TODO C++: 0002-add-two-numbers.cpp
- LeetCode: add-two-numbers/
- Video: explanation
-
TODO 0287. Find The Duplicate Number :medium:
- TODO Python: 0287-find-the-duplicate-number.py
- TODO C++: 0287-find-the-duplicate-number.cpp
- LeetCode: find-the-duplicate-number/
- Video: explanation
-
TODO 0725. Split Linked List in Parts :medium:
- TODO Python: 0725-split-linked-list-in-parts.py
- TODO C++: 0725-split-linked-list-in-parts.cpp
- LeetCode: split-linked-list-in-parts/
- Video: explanation
-
TODO 0146. LRU Cache :medium:
- TODO Python: 0146-lru-cache.py
- TODO C++: 0146-lru-cache.cpp
- LeetCode: lru-cache/
- Video: explanation
-
TODO 0023. Merge K Sorted Lists :hard:
- TODO Python: 0023-merge-k-sorted-lists.py
- TODO C++: 0023-merge-k-sorted-lists.cpp
- LeetCode: merge-k-sorted-lists/
- Video: explanation
-
TODO 0025. Reverse Nodes In K Group :hard:
- TODO Python: 0025-reverse-nodes-in-k-group.py
- TODO C++: 0025-reverse-nodes-in-k-group.cpp
- LeetCode: reverse-nodes-in-k-group/
- Video: explanation
TODO Trees [/]
-
TODO 0590. N-ary Tree Postorder Traversal :easy:
- TODO Python: 0590-n-ary-tree-postorder-traversal.py
- TODO C++: 0590-n-ary-tree-postorder-traversal.cpp
- LeetCode: n-ary-tree-postorder-traversal/
- Video: explanation
-
TODO 0226. Invert Binary Tree :easy:
- TODO Python: 0226-invert-binary-tree.py
- TODO C++: 0226-invert-binary-tree.cpp
- LeetCode: invert-binary-tree/
- Video: explanation
-
TODO 0104. Maximum Depth of Binary Tree :easy:
- TODO Python: 0104-maximum-depth-of-binary-tree.py
- TODO C++: 0104-maximum-depth-of-binary-tree.cpp
- LeetCode: maximum-depth-of-binary-tree/
- Video: explanation
-
TODO 0543. Diameter of Binary Tree :easy:
- TODO Python: 0543-diameter-of-binary-tree.py
- TODO C++: 0543-diameter-of-binary-tree.cpp
- LeetCode: diameter-of-binary-tree/
- Video: explanation
-
TODO 0110. Balanced Binary Tree :easy:
- TODO Python: 0110-balanced-binary-tree.py
- TODO C++: 0110-balanced-binary-tree.cpp
- LeetCode: balanced-binary-tree/
- Video: explanation
-
TODO 0100. Same Tree :easy:
- TODO Python: 0100-same-tree.py
- TODO C++: 0100-same-tree.cpp
- LeetCode: same-tree/
- Video: explanation
-
TODO 0572. Subtree of Another Tree :easy:
- TODO Python: 0572-subtree-of-another-tree.py
- TODO C++: 0572-subtree-of-another-tree.cpp
- LeetCode: subtree-of-another-tree/
- Video: explanation
-
TODO 0235. Lowest Common Ancestor of a Binary Search Tree :medium:
- TODO Python: 0235-lowest-common-ancestor-of-a-binary-search-tree.py
- TODO C++: 0235-lowest-common-ancestor-of-a-binary-search-tree.cpp
- LeetCode: lowest-common-ancestor-of-a-binary-search-tree/
- Video: explanation
-
TODO 0102. Binary Tree Level Order Traversal :medium:
- TODO Python: 0102-binary-tree-level-order-traversal.py
- TODO C++: 0102-binary-tree-level-order-traversal.cpp
- LeetCode: binary-tree-level-order-traversal/
- Video: explanation
-
TODO 0199. Binary Tree Right Side View :medium:
- TODO Python: 0199-binary-tree-right-side-view.py
- TODO C++: 0199-binary-tree-right-side-view.cpp
- LeetCode: binary-tree-right-side-view/
- Video: explanation
-
TODO 1376. Time Needed to Inform All Employees :medium:
- TODO Python: 1376-time-needed-to-inform-all-employees.py
- TODO C++: 1376-time-needed-to-inform-all-employees.cpp
- LeetCode: time-needed-to-inform-all-employees/
- Video: explanation
-
TODO 1448. Count Good Nodes In Binary Tree :medium:
- TODO Python: 1448-count-good-nodes-in-binary-tree.py
- TODO C++: 1448-count-good-nodes-in-binary-tree.cpp
- LeetCode: count-good-nodes-in-binary-tree/
- Video: explanation
-
TODO 0098. Validate Binary Search Tree :medium:
- TODO Python: 0098-validate-binary-search-tree.py
- TODO C++: 0098-validate-binary-search-tree.cpp
- LeetCode: validate-binary-search-tree/
- Video: explanation
-
TODO 0230. Kth Smallest Element In a Bst :medium:
- TODO Python: 0230-kth-smallest-element-in-a-bst.py
- TODO C++: 0230-kth-smallest-element-in-a-bst.cpp
- LeetCode: kth-smallest-element-in-a-bst/
- Video: explanation
-
TODO 0105. Construct Binary Tree From Preorder And Inorder Traversal :medium:
-
TODO 1028. Recover a Tree From Preorder Traversal :hard:
- TODO Python: 1028-recover-a-tree-from-preorder-traversal.py
- TODO C++: 1028-recover-a-tree-from-preorder-traversal.cpp
- LeetCode: recover-a-tree-from-preorder-traversal/
- Video: explanation
-
TODO 0124. Binary Tree Maximum Path Sum :hard:
- TODO Python: 0124-binary-tree-maximum-path-sum.py
- TODO C++: 0124-binary-tree-maximum-path-sum.cpp
- LeetCode: binary-tree-maximum-path-sum/
- Video: explanation
-
TODO 0297. Serialize And Deserialize Binary Tree :hard:
- TODO Python: 0297-serialize-and-deserialize-binary-tree.py
- TODO C++: 0297-serialize-and-deserialize-binary-tree.cpp
- LeetCode: serialize-and-deserialize-binary-tree/
- Video: explanation
TODO Tries [/]
-
TODO 0208. Implement Trie Prefix Tree :medium:
- TODO Python: 0208-implement-trie-prefix-tree.py
- TODO C++: 0208-implement-trie-prefix-tree.cpp
- LeetCode: implement-trie-prefix-tree/
- Video: explanation
-
TODO 0211. Design Add And Search Words Data Structure :medium:
- TODO Python: 0211-design-add-and-search-words-data-structure.py
- TODO C++: 0211-design-add-and-search-words-data-structure.cpp
- LeetCode: design-add-and-search-words-data-structure/
- Video: explanation
-
TODO 1166. Design File System :medium:
- TODO Python: 1166-design-file-system.py
- TODO C++: 1166-design-file-system.cpp
- LeetCode: design-file-system/
-
TODO 0212. Word Search II :hard:
- TODO Python: 0212-word-search-ii.py
- TODO C++: 0212-word-search-ii.cpp
- LeetCode: word-search-ii/
- Video: explanation
TODO Heap / Priority Queue [/]
-
TODO 0703. Kth Largest Element In a Stream :easy:
- TODO Python: 0703-kth-largest-element-in-a-stream.py
- TODO C++: 0703-kth-largest-element-in-a-stream.cpp
- LeetCode: kth-largest-element-in-a-stream/
- Video: explanation
-
TODO 1046. Last Stone Weight :easy:
- TODO Python: 1046-last-stone-weight.py
- TODO C++: 1046-last-stone-weight.cpp
- LeetCode: last-stone-weight/
- Video: explanation
-
TODO 0973. K Closest Points to Origin :medium:
- TODO Python: 0973-k-closest-points-to-origin.py
- TODO C++: 0973-k-closest-points-to-origin.cpp
- LeetCode: k-closest-points-to-origin/
- Video: explanation
-
TODO 0215. Kth Largest Element In An Array :medium:
- TODO Python: 0215-kth-largest-element-in-an-array.py
- TODO C++: 0215-kth-largest-element-in-an-array.cpp
- LeetCode: kth-largest-element-in-an-array/
- Video: explanation
-
TODO 0621. Task Scheduler :medium:
- TODO Python: 0621-task-scheduler.py
- TODO C++: 0621-task-scheduler.cpp
- LeetCode: task-scheduler/
- Video: explanation
-
TODO 0355. Design Twitter :medium:
- TODO Python: 0355-design-twitter.py
- TODO C++: 0355-design-twitter.cpp
- LeetCode: design-twitter/
- Video: explanation
-
TODO 0295. Find Median From Data Stream :hard:
- TODO Python: 0295-find-median-from-data-stream.py
- TODO C++: 0295-find-median-from-data-stream.cpp
- LeetCode: find-median-from-data-stream/
- Video: explanation
TODO Backtracking [/]
-
TODO 1863. Sum of All Subsets XOR Total :easy:
- TODO Python: 1863-sum-of-all-subset-xor-totals.py
- TODO C++: 1863-sum-of-all-subset-xor-totals.cpp
- LeetCode: sum-of-all-subset-xor-totals/
- Video: explanation
-
TODO 0078. Subsets :medium:
- TODO Python: 0078-subsets.py
- TODO C++: 0078-subsets.cpp
- LeetCode: subsets/
- Video: explanation
-
TODO 0039. Combination Sum :medium:
- TODO Python: 0039-combination-sum.py
- TODO C++: 0039-combination-sum.cpp
- LeetCode: combination-sum/
- Video: explanation
-
TODO 0040. Combination Sum II :medium:
- TODO Python: 0040-combination-sum-ii.py
- TODO C++: 0040-combination-sum-ii.cpp
- LeetCode: combination-sum-ii/
- Video: explanation
-
TODO 0077. Combinations :medium:
- TODO Python: 0077-combinations.py
- TODO C++: 0077-combinations.cpp
- LeetCode: combinations/
- Video: explanation
-
TODO 0046. Permutations :medium:
- TODO Python: 0046-permutations.py
- TODO C++: 0046-permutations.cpp
- LeetCode: permutations/
- Video: explanation
-
TODO 0090. Subsets II :medium:
- TODO Python: 0090-subsets-ii.py
- TODO C++: 0090-subsets-ii.cpp
- LeetCode: subsets-ii/
- Video: explanation
-
TODO 0022. Generate Parentheses :medium:
- TODO Python: 0022-generate-parentheses.py
- TODO C++: 0022-generate-parentheses.cpp
- LeetCode: generate-parentheses/
- Video: explanation
-
TODO 1079. Letter Tile Possibilities :medium:
- TODO Python: 1079-letter-tile-possibilities.py
- TODO C++: 1079-letter-tile-possibilities.cpp
- LeetCode: letter-tile-possibilities/
- Video: explanation
-
TODO 0079. Word Search :medium:
- TODO Python: 0079-word-search.py
- TODO C++: 0079-word-search.cpp
- LeetCode: word-search/
- Video: explanation
-
TODO 0131. Palindrome Partitioning :medium:
- TODO Python: 0131-palindrome-partitioning.py
- TODO C++: 0131-palindrome-partitioning.cpp
- LeetCode: palindrome-partitioning/
- Video: explanation
-
TODO 0017. Letter Combinations of a Phone Number :medium:
- TODO Python: 0017-letter-combinations-of-a-phone-number.py
- TODO C++: 0017-letter-combinations-of-a-phone-number.cpp
- LeetCode: letter-combinations-of-a-phone-number/
- Video: explanation
-
TODO 0351. Android Unlock Patterns :medium:
- TODO Python: 0351-android-unlock-patterns.py
- TODO C++: 0351-android-unlock-patterns.cpp
- LeetCode: android-unlock-patterns/
-
TODO 0051. N Queens :hard:
- TODO Python: 0051-n-queens.py
- TODO C++: 0051-n-queens.cpp
- LeetCode: n-queens/
- Video: explanation
-
TODO 0052. N Queens II :hard:
- TODO Python: 0052-n-queens-ii.py
- TODO C++: 0052-n-queens-ii.cpp
- LeetCode: n-queens-ii/
- Video: explanation
TODO Graphs [/]
-
TODO 2924. Find Champion II :medium:
- TODO Python: 2924-find-champion-ii.py
- TODO C++: 2924-find-champion-ii.cpp
- LeetCode: find-champion-ii/
- Video: explanation
-
TODO 0200. Number of Islands :medium:
- TODO Python: 0200-number-of-islands.py
- TODO C++: 0200-number-of-islands.cpp
- LeetCode: number-of-islands/
- Video: explanation
-
TODO 0695. Max Area of Island :medium:
- TODO Python: 0695-max-area-of-island.py
- TODO C++: 0695-max-area-of-island.cpp
- LeetCode: max-area-of-island/
- Video: explanation
-
TODO 2658. Maximum Number of Fish in a Grid :medium:
- TODO Python: 2658-maximum-number-of-fish-in-a-grid.py
- TODO C++: 2658-maximum-number-of-fish-in-a-grid.cpp
- LeetCode: maximum-number-of-fish-in-a-grid/
- Video: explanation
-
TODO 0133. Clone Graph :medium:
- TODO Python: 0133-clone-graph.py
- TODO C++: 0133-clone-graph.cpp
- LeetCode: clone-graph/
- Video: explanation
-
TODO 0286. Walls And Gates :medium:
- TODO Python: 0286-walls-and-gates.py
- TODO C++: 0286-walls-and-gates.cpp
- LeetCode: walls-and-gates/
- Video: explanation
-
TODO 0994. Rotting Oranges :medium:
- TODO Python: 0994-rotting-oranges.py
- TODO C++: 0994-rotting-oranges.cpp
- LeetCode: rotting-oranges/
- Video: explanation
-
TODO 1905. Count Sub Islands :medium:
- TODO Python: 1905-count-sub-islands.py
- TODO C++: 1905-count-sub-islands.cpp
- LeetCode: count-sub-islands/
- Video: explanation
-
TODO 0417. Pacific Atlantic Water Flow :medium:
- TODO Python: 0417-pacific-atlantic-water-flow.py
- TODO C++: 0417-pacific-atlantic-water-flow.cpp
- LeetCode: pacific-atlantic-water-flow/
- Video: explanation
-
TODO 0130. Surrounded Regions :medium:
- TODO Python: 0130-surrounded-regions.py
- TODO C++: 0130-surrounded-regions.cpp
- LeetCode: surrounded-regions/
- Video: explanation
-
TODO 0802. Find Eventual Safe States :medium:
- TODO Python: 0802-find-eventual-safe-states.py
- TODO C++: 0802-find-eventual-safe-states.cpp
- LeetCode: find-eventual-safe-states/
- Video: explanation
-
TODO 0207. Course Schedule :medium:
- TODO Python: 0207-course-schedule.py
- TODO C++: 0207-course-schedule.cpp
- LeetCode: course-schedule/
- Video: explanation
-
TODO 0210. Course Schedule II :medium:
- TODO Python: 0210-course-schedule-ii.py
- TODO C++: 0210-course-schedule-ii.cpp
- LeetCode: course-schedule-ii/
- Video: explanation
-
TODO 0261. Graph Valid Tree :medium:
- TODO Python: 0261-graph-valid-tree.py
- TODO C++: 0261-graph-valid-tree.cpp
- LeetCode: graph-valid-tree/
- Video: explanation
-
TODO 0323. Number of Connected Components In An Undirected Graph :medium:
-
TODO 0684. Redundant Connection :medium:
- TODO Python: 0684-redundant-connection.py
- TODO C++: 0684-redundant-connection.cpp
- LeetCode: redundant-connection/
- Video: explanation
-
TODO 2092. Find All People With Secret :hard:
- TODO Python: 2092-find-all-people-with-secret.py
- TODO C++: 2092-find-all-people-with-secret.cpp
- LeetCode: find-all-people-with-secret/
- Video: explanation
-
TODO 0127. Word Ladder :hard:
- TODO Python: 0127-word-ladder.py
- TODO C++: 0127-word-ladder.cpp
- LeetCode: word-ladder/
- Video: explanation
TODO 1-D Dynamic Programming [/]
-
TODO 0070. Climbing Stairs :easy:
- TODO Python: 0070-climbing-stairs.py
- TODO C++: 0070-climbing-stairs.cpp
- LeetCode: climbing-stairs/
- Video: explanation
-
TODO 0746. Min Cost Climbing Stairs :easy:
- TODO Python: 0746-min-cost-climbing-stairs.py
- TODO C++: 0746-min-cost-climbing-stairs.cpp
- LeetCode: min-cost-climbing-stairs/
- Video: explanation
-
TODO 0198. House Robber :medium:
- TODO Python: 0198-house-robber.py
- TODO C++: 0198-house-robber.cpp
- LeetCode: house-robber/
- Video: explanation
-
TODO 0213. House Robber II :medium:
- TODO Python: 0213-house-robber-ii.py
- TODO C++: 0213-house-robber-ii.cpp
- LeetCode: house-robber-ii/
- Video: explanation
-
TODO 0005. Longest Palindromic Substring :medium:
- TODO Python: 0005-longest-palindromic-substring.py
- TODO C++: 0005-longest-palindromic-substring.cpp
- LeetCode: longest-palindromic-substring/
- Video: explanation
-
TODO 0647. Palindromic Substrings :medium:
- TODO Python: 0647-palindromic-substrings.py
- TODO C++: 0647-palindromic-substrings.cpp
- LeetCode: palindromic-substrings/
- Video: explanation
-
TODO 0091. Decode Ways :medium:
- TODO Python: 0091-decode-ways.py
- TODO C++: 0091-decode-ways.cpp
- LeetCode: decode-ways/
- Video: explanation
-
TODO 0322. Coin Change :medium:
- TODO Python: 0322-coin-change.py
- TODO C++: 0322-coin-change.cpp
- LeetCode: coin-change/
- Video: explanation
-
TODO 0152. Maximum Product Subarray :medium:
- TODO Python: 0152-maximum-product-subarray.py
- TODO C++: 0152-maximum-product-subarray.cpp
- LeetCode: maximum-product-subarray/
- Video: explanation
-
TODO 0139. Word Break :medium:
- TODO Python: 0139-word-break.py
- TODO C++: 0139-word-break.cpp
- LeetCode: word-break/
- Video: explanation
-
TODO 0300. Longest Increasing Subsequence :medium:
- TODO Python: 0300-longest-increasing-subsequence.py
- TODO C++: 0300-longest-increasing-subsequence.cpp
- LeetCode: longest-increasing-subsequence/
- Video: explanation
-
TODO 0416. Partition Equal Subset Sum :medium:
- TODO Python: 0416-partition-equal-subset-sum.py
- TODO C++: 0416-partition-equal-subset-sum.cpp
- LeetCode: partition-equal-subset-sum/
- Video: explanation
-
TODO 0656. Coin Path :hard:
- TODO Python: 0656-coin-path.py
- TODO C++: 0656-coin-path.cpp
- LeetCode: coin-path/
TODO Intervals [/]
-
TODO 0057. Insert Interval :medium:
- TODO Python: 0057-insert-interval.py
- TODO C++: 0057-insert-interval.cpp
- LeetCode: insert-interval/
- Video: explanation
-
TODO 0056. Merge Intervals :medium:
- TODO Python: 0056-merge-intervals.py
- TODO C++: 0056-merge-intervals.cpp
- LeetCode: merge-intervals/
- Video: explanation
-
TODO 0435. Non Overlapping Intervals :medium:
- TODO Python: 0435-non-overlapping-intervals.py
- TODO C++: 0435-non-overlapping-intervals.cpp
- LeetCode: non-overlapping-intervals/
- Video: explanation
-
TODO 0986. Interval List Intersections :medium:
- TODO Python: 0986-interval-list-intersections.py
- TODO C++: 0986-interval-list-intersections.cpp
- LeetCode: interval-list-intersections/
-
TODO 0252. Meeting Rooms :easy:
- TODO Python: 0252-meeting-rooms.py
- TODO C++: 0252-meeting-rooms.cpp
- LeetCode: meeting-rooms/
- Video: explanation
-
TODO 0253. Meeting Rooms II :medium:
- TODO Python: 0253-meeting-rooms-ii.py
- TODO C++: 0253-meeting-rooms-ii.cpp
- LeetCode: meeting-rooms-ii/
- Video: explanation
-
TODO 1851. Minimum Interval to Include Each Query :hard:
- TODO Python: 1851-minimum-interval-to-include-each-query.py
- TODO C++: 1851-minimum-interval-to-include-each-query.cpp
- LeetCode: minimum-interval-to-include-each-query/
- Video: explanation
TODO Greedy [/]
-
TODO 0945. Minimum Increment to Make Array Unique :medium:
- TODO Python: 0945-minimum-increment-to-make-array-unique.py
- TODO C++: 0945-minimum-increment-to-make-array-unique.cpp
- LeetCode: minimum-increment-to-make-array-unique/
- Video: explanation
-
TODO 0053. Maximum Subarray :medium:
- TODO Python: 0053-maximum-subarray.py
- TODO C++: 0053-maximum-subarray.cpp
- LeetCode: maximum-subarray/
- Video: explanation
-
TODO 0978. Longest Turbulent Subarray :medium:
- TODO Python: 0978-longest-turbulent-subarray.py
- TODO C++: 0978-longest-turbulent-subarray.cpp
- LeetCode: longest-turbulent-subarray/
- Video: explanation
-
TODO 0055. Jump Game :medium:
- TODO Python: 0055-jump-game.py
- TODO C++: 0055-jump-game.cpp
- LeetCode: jump-game/
- Video: explanation
-
TODO 0045. Jump Game II :medium:
- TODO Python: 0045-jump-game-ii.py
- TODO C++: 0045-jump-game-ii.cpp
- LeetCode: jump-game-ii/
- Video: explanation
-
TODO 1871. Jump Game VII :medium:
- TODO Python: 1871-jump-game-vii.py
- TODO C++: 1871-jump-game-vii.cpp
- LeetCode: jump-game-vii/
- Video: explanation
-
TODO 0134. Gas Station :medium:
- TODO Python: 0134-gas-station.py
- TODO C++: 0134-gas-station.cpp
- LeetCode: gas-station/
- Video: explanation
-
TODO 0846. Hand of Straights :medium:
- TODO Python: 0846-hand-of-straights.py
- TODO C++: 0846-hand-of-straights.cpp
- LeetCode: hand-of-straights/
- Video: explanation
-
TODO 1899. Merge Triplets to Form Target Triplet :medium:
- TODO Python: 1899-merge-triplets-to-form-target-triplet.py
- TODO C++: 1899-merge-triplets-to-form-target-triplet.cpp
- LeetCode: merge-triplets-to-form-target-triplet/
- Video: explanation
-
TODO 0763. Partition Labels :medium:
- TODO Python: 0763-partition-labels.py
- TODO C++: 0763-partition-labels.cpp
- LeetCode: partition-labels/
- Video: explanation
-
TODO 0678. Valid Parenthesis String :medium:
- TODO Python: 0678-valid-parenthesis-string.py
- TODO C++: 0678-valid-parenthesis-string.cpp
- LeetCode: valid-parenthesis-string/
- Video: explanation
TODO Advanced Graphs [/]
-
TODO 0743. Network Delay Time :medium:
- TODO Python: 0743-network-delay-time.py
- TODO C++: 0743-network-delay-time.cpp
- LeetCode: network-delay-time/
- Video: explanation
-
TODO 0332. Reconstruct Itinerary :hard:
- TODO Python: 0332-reconstruct-itinerary.py
- TODO C++: 0332-reconstruct-itinerary.cpp
- LeetCode: reconstruct-itinerary/
- Video: explanation
-
TODO 1584. Min Cost to Connect All Points :medium:
- TODO Python: 1584-min-cost-to-connect-all-points.py
- TODO C++: 1584-min-cost-to-connect-all-points.cpp
- LeetCode: min-cost-to-connect-all-points/
- Video: explanation
-
TODO 2812. Find the Safest Path in a Grid :medium:
- TODO Python: 2812-find-the-safest-path-in-a-grid.py
- TODO C++: 2812-find-the-safest-path-in-a-grid.cpp
- LeetCode: find-the-safest-path-in-a-grid/
- Video: explanation
-
TODO 0778. Swim In Rising Water :hard:
- TODO Python: 0778-swim-in-rising-water.py
- TODO C++: 0778-swim-in-rising-water.cpp
- LeetCode: swim-in-rising-water/
- Video: explanation
-
TODO 0269. Alien Dictionary :hard:
- TODO Python: 0269-alien-dictionary.py
- TODO C++: 0269-alien-dictionary.cpp
- LeetCode: alien-dictionary/
- Video: explanation
-
TODO 0787. Cheapest Flights Within K Stops :medium:
- TODO Python: 0787-cheapest-flights-within-k-stops.py
- TODO C++: 0787-cheapest-flights-within-k-stops.cpp
- LeetCode: cheapest-flights-within-k-stops/
- Video: explanation
-
TODO 2493. Divide Nodes Into the Maximum Number of Groups :hard:
- TODO Python: 2493-divide-nodes-into-the-maximum-number-of-groups.py
- TODO C++: 2493-divide-nodes-into-the-maximum-number-of-groups.cpp
- LeetCode: divide-nodes-into-the-maximum-number-of-groups/
- Video: explanation
TODO Bit Manipulation [/]
-
TODO 0136. Single Number :easy:
- TODO Python: 0136-single-number.py
- TODO C++: 0136-single-number.cpp
- LeetCode: single-number/
- Video: explanation
-
TODO 0260. Single Number III :medium:
- TODO Python: 0260-single-number-iii.py
- TODO C++: 0260-single-number-iii.cpp
- LeetCode: single-number-iii/
- Video: explanation
-
TODO 0191. Number of 1 Bits :easy:
- TODO Python: 0191-number-of-1-bits.py
- TODO C++: 0191-number-of-1-bits.cpp
- LeetCode: number-of-1-bits/
- Video: explanation
-
TODO 0338. Counting Bits :easy:
- TODO Python: 0338-counting-bits.py
- TODO C++: 0338-counting-bits.cpp
- LeetCode: counting-bits/
- Video: explanation
-
TODO 2220. Minimum Bit Flips to Convert Number :easy:
- TODO Python: 2220-minimum-bit-flips-to-convert-number.py
- TODO C++: 2220-minimum-bit-flips-to-convert-number.cpp
- LeetCode: minimum-bit-flips-to-convert-number/
- Video: explanation
-
TODO 0190. Reverse Bits :easy:
- TODO Python: 0190-reverse-bits.py
- TODO C++: 0190-reverse-bits.cpp
- LeetCode: reverse-bits/
- Video: explanation
-
TODO 0268. Missing Number :easy:
- TODO Python: 0268-missing-number.py
- TODO C++: 0268-missing-number.cpp
- LeetCode: missing-number/
- Video: explanation
-
TODO 0231. Power of Two :easy:
- TODO Python: 0231-power-of-two.py
- TODO C++: 0231-power-of-two.cpp
- LeetCode: power-of-two/
- Video: explanation
-
TODO 0371. Sum of Two Integers :medium:
- TODO Python: 0371-sum-of-two-integers.py
- TODO C++: 0371-sum-of-two-integers.cpp
- LeetCode: sum-of-two-integers/
- Video: explanation
-
TODO 0007. Reverse Integer :medium:
- TODO Python: 0007-reverse-integer.py
- TODO C++: 0007-reverse-integer.cpp
- LeetCode: reverse-integer/
- Video: explanation
TODO Math & Geometry [/]
-
TODO 0840. Magic Squares In Grid :medium:
- TODO Python: 0840-magic-squares-in-grid.py
- TODO C++: 0840-magic-squares-in-grid.cpp
- LeetCode: magic-squares-in-grid/
- Video: explanation
-
TODO 0048. Rotate Image :medium:
- TODO Python: 0048-rotate-image.py
- TODO C++: 0048-rotate-image.cpp
- LeetCode: rotate-image/
- Video: explanation
-
TODO 0054. Spiral Matrix :medium:
- TODO Python: 0054-spiral-matrix.py
- TODO C++: 0054-spiral-matrix.cpp
- LeetCode: spiral-matrix/
- Video: explanation
-
TODO 2326. Spiral Matrix IV :medium:
- TODO Python: 2326-spiral-matrix-iv.py
- TODO C++: 2326-spiral-matrix-iv.cpp
- LeetCode: spiral-matrix-iv/
- Video: explanation
-
TODO 0073. Set Matrix Zeroes :medium:
- TODO Python: 0073-set-matrix-zeroes.py
- TODO C++: 0073-set-matrix-zeroes.cpp
- LeetCode: set-matrix-zeroes/
- Video: explanation
-
TODO 0202. Happy Number :easy:
- TODO Python: 0202-happy-number.py
- TODO C++: 0202-happy-number.cpp
- LeetCode: happy-number/
- Video: explanation
-
TODO 0066. Plus One :easy:
- TODO Python: 0066-plus-one.py
- TODO C++: 0066-plus-one.cpp
- LeetCode: plus-one/
- Video: explanation
-
TODO 0009. Palindrome Number :easy:
- TODO Python: 0009-palindrome-number.py
- TODO C++: 0009-palindrome-number.cpp
- LeetCode: palindrome-number/
- Video: explanation
-
TODO 0012. Integer to Roman :medium:
- TODO Python: 0012-integer-to-roman.py
- TODO C++: 0012-integer-to-roman.cpp
- LeetCode: integer-to-roman/
- Video: explanation
-
TODO 0050. Pow(x, n) :medium:
- TODO Python: 0050-powx-n.py
- TODO C++: 0050-powx-n.cpp
- LeetCode: powx-n/
- Video: explanation
-
TODO 2698. Find the Punishment Number of an Integer :medium:
- TODO Python: 2698-find-the-punishment-number-of-an-integer.py
- TODO C++: 2698-find-the-punishment-number-of-an-integer.cpp
- LeetCode: find-the-punishment-number-of-an-integer/
- Video: explanation
-
TODO 1780. Check if Number is a Sum of Powers of Three :medium:
- TODO Python: 1780-check-if-number-is-a-sum-of-powers-of-three.py
- TODO C++: 1780-check-if-number-is-a-sum-of-powers-of-three.cpp
- LeetCode: check-if-number-is-a-sum-of-powers-of-three/
- Video: explanation
-
TODO 0043. Multiply Strings :medium:
- TODO Python: 0043-multiply-strings.py
- TODO C++: 0043-multiply-strings.cpp
- LeetCode: multiply-strings/
- Video: explanation
-
TODO 2013. Detect Squares :medium:
- TODO Python: 2013-detect-squares.py
- TODO C++: 2013-detect-squares.cpp
- LeetCode: detect-squares/
- Video: explanation
-
TODO 0296. Best Meeting Point :hard:
- TODO Python: 0296-best-meeting-point.py
- TODO C++: 0296-best-meeting-point.cpp
- LeetCode: best-meeting-point/
TODO 2-D Dynamic Programming [/]
-
TODO 0062. Unique Paths :medium:
- TODO Python: 0062-unique-paths.py
- TODO C++: 0062-unique-paths.cpp
- LeetCode: unique-paths/
- Video: explanation
-
TODO 1143. Longest Common Subsequence :medium:
- TODO Python: 1143-longest-common-subsequence.py
- TODO C++: 1143-longest-common-subsequence.cpp
- LeetCode: longest-common-subsequence/
- Video: explanation
-
TODO 0309. Best Time to Buy And Sell Stock With Cooldown :medium:
- TODO Python: 0309-best-time-to-buy-and-sell-stock-with-cooldown.py
- TODO C++: 0309-best-time-to-buy-and-sell-stock-with-cooldown.cpp
- LeetCode: best-time-to-buy-and-sell-stock-with-cooldown/
- Video: explanation
-
TODO 0518. Coin Change II :medium:
- TODO Python: 0518-coin-change-ii.py
- TODO C++: 0518-coin-change-ii.cpp
- LeetCode: coin-change-ii/
- Video: explanation
-
TODO 0494. Target Sum :medium:
- TODO Python: 0494-target-sum.py
- TODO C++: 0494-target-sum.cpp
- LeetCode: target-sum/
- Video: explanation
-
TODO 0097. Interleaving String :medium:
- TODO Python: 0097-interleaving-string.py
- TODO C++: 0097-interleaving-string.cpp
- LeetCode: interleaving-string/
- Video: explanation
-
TODO 0329. Longest Increasing Path In a Matrix :hard:
- TODO Python: 0329-longest-increasing-path-in-a-matrix.py
- TODO C++: 0329-longest-increasing-path-in-a-matrix.cpp
- LeetCode: longest-increasing-path-in-a-matrix/
- Video: explanation
-
TODO 1911. Maximum Alternating Subsequence Sum :medium:
- TODO Python: 1911-maximum-alternating-subsequence-sum.py
- TODO C++: 1911-maximum-alternating-subsequence-sum.cpp
- LeetCode: maximum-alternating-subsequence-sum/
- Video: explanation
-
TODO 0115. Distinct Subsequences :hard:
- TODO Python: 0115-distinct-subsequences.py
- TODO C++: 0115-distinct-subsequences.cpp
- LeetCode: distinct-subsequences/
- Video: explanation
-
TODO 0072. Edit Distance :medium:
- TODO Python: 0072-edit-distance.py
- TODO C++: 0072-edit-distance.cpp
- LeetCode: edit-distance/
- Video: explanation
-
TODO 1220. Count Vowels Permutation :hard:
- TODO Python: 1220-count-vowels-permutation.py
- TODO C++: 1220-count-vowels-permutation.cpp
- LeetCode: count-vowels-permutation/
- Video: explanation
-
TODO 0312. Burst Balloons :hard:
- TODO Python: 0312-burst-balloons.py
- TODO C++: 0312-burst-balloons.cpp
- LeetCode: burst-balloons/
- Video: explanation
-
TODO 0010. Regular Expression Matching :hard:
- TODO Python: 0010-regular-expression-matching.py
- TODO C++: 0010-regular-expression-matching.cpp
- LeetCode: regular-expression-matching/
- Video: explanation