<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url>
<loc>https://leettube.dev</loc>
<lastmod>2026-10-05T04:26:14.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://leettube.dev/about</loc>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://leettube.dev/watch/intro-warm-up</loc>
<video:video>
<video:title>Warm-up tutorial</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/intro-warm-up.jpg</video:thumbnail_loc>
<video:description>Before the first stage: how the work grows as the input grows, and the hash map, which answers "have I seen this?" in one hop.</video:description>
<video:content_loc>https://leettube.dev/api/video/intro-warm-up.mp4</video:content_loc>
<video:duration>45</video:duration>
<video:publication_date>2026-10-05T02:57:30.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:57:30.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/two-sum</loc>
<video:video>
<video:title>Two Sum (LeetCode 1)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/two-sum.jpg</video:thumbnail_loc>
<video:description>Find the two numbers that add up to the target. Walk once, and for each number look up the partner you need in a map of what you've seen.</video:description>
<video:content_loc>https://leettube.dev/api/video/two-sum.mp4</video:content_loc>
<video:duration>64</video:duration>
<video:publication_date>2026-10-04T23:30:20.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-04T23:30:20.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/valid-parentheses</loc>
<video:video>
<video:title>Valid Parentheses (LeetCode 20)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/valid-parentheses.jpg</video:thumbnail_loc>
<video:description>Check that every bracket is closed by the right type, in the right order. Push each opener, and match each closer against the top of the stack.</video:description>
<video:content_loc>https://leettube.dev/api/video/valid-parentheses.mp4</video:content_loc>
<video:duration>96</video:duration>
<video:publication_date>2026-10-05T02:37:13.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:13.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/binary-search</loc>
<video:video>
<video:title>Binary Search (LeetCode 704)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/binary-search.jpg</video:thumbnail_loc>
<video:description>Find a target in a sorted list. Check the middle and throw away the half that can't hold it, so each step halves the search.</video:description>
<video:content_loc>https://leettube.dev/api/video/binary-search.mp4</video:content_loc>
<video:duration>99</video:duration>
<video:publication_date>2026-10-05T02:37:07.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:07.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/linked-list-cycle</loc>
<video:video>
<video:title>Linked List Cycle (LeetCode 141)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/linked-list-cycle.jpg</video:thumbnail_loc>
<video:description>Does the list loop back on itself? Send a tortoise and a hare down it: if there's a cycle, the faster runner must catch the slower one.</video:description>
<video:content_loc>https://leettube.dev/api/video/linked-list-cycle.mp4</video:content_loc>
<video:duration>85</video:duration>
<video:publication_date>2026-10-05T02:37:10.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:10.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/intro-arrays</loc>
<video:video>
<video:title>Arrays tutorial</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/intro-arrays.jpg</video:thumbnail_loc>
<video:description>Walk the array once with a little state instead of restarting everywhere: two pointers closing in from the ends, or a window that grows on the right and shrinks on the left.</video:description>
<video:content_loc>https://leettube.dev/api/video/intro-arrays.mp4</video:content_loc>
<video:duration>43</video:duration>
<video:publication_date>2026-10-05T02:57:30.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:57:30.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/best-time-to-buy-stock</loc>
<video:video>
<video:title>Best Time to Buy and Sell Stock (LeetCode 121)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/best-time-to-buy-stock.jpg</video:thumbnail_loc>
<video:description>Buy one day, sell on a later day, for the biggest profit. Walk the prices once, remembering the cheapest day so far.</video:description>
<video:content_loc>https://leettube.dev/api/video/best-time-to-buy-stock.mp4</video:content_loc>
<video:duration>92</video:duration>
<video:publication_date>2026-10-05T02:37:06.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:06.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/merge-intervals</loc>
<video:video>
<video:title>Merge Intervals (LeetCode 56)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/merge-intervals.jpg</video:thumbnail_loc>
<video:description>Merge every overlapping interval. Sort by start, then either extend the last merged interval or start a new one.</video:description>
<video:content_loc>https://leettube.dev/api/video/merge-intervals.mp4</video:content_loc>
<video:duration>99</video:duration>
<video:publication_date>2026-10-05T02:37:11.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:11.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/top-k-frequent</loc>
<video:video>
<video:title>Top K Frequent (LeetCode 347)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/top-k-frequent.jpg</video:thumbnail_loc>
<video:description>Find the k values that appear most often. Tally them in a map, then keep a k-spot leaderboard in a min-heap instead of sorting everything.</video:description>
<video:content_loc>https://leettube.dev/api/video/top-k-frequent.mp4</video:content_loc>
<video:duration>92</video:duration>
<video:publication_date>2026-10-05T02:37:13.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:13.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/longest-substring</loc>
<video:video>
<video:title>Longest Substring (LeetCode 3)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/longest-substring.jpg</video:thumbnail_loc>
<video:description>Find the longest run of characters with no repeats. Slide a window along the string, and when a letter repeats, jump the left edge past its last copy.</video:description>
<video:content_loc>https://leettube.dev/api/video/longest-substring.mp4</video:content_loc>
<video:duration>95</video:duration>
<video:publication_date>2026-10-04T23:34:55.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-04T23:34:55.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/subarray-sum-equals-k</loc>
<video:video>
<video:title>Subarray Sum Equals K (LeetCode 560)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/subarray-sum-equals-k.jpg</video:thumbnail_loc>
<video:description>Count the stretches of numbers that add up to k, negatives included. Keep a running total and a tally of totals seen, and look up the one that's k behind.</video:description>
<video:content_loc>https://leettube.dev/api/video/subarray-sum-equals-k.mp4</video:content_loc>
<video:duration>95</video:duration>
<video:publication_date>2026-10-04T23:34:55.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-04T23:34:55.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/product-except-self</loc>
<video:video>
<video:title>Product of Array Except Self (LeetCode 238)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/product-except-self.jpg</video:thumbnail_loc>
<video:description>Each spot gets the product of every other number, without division. Multiply everything to its left by everything to its right in two passes.</video:description>
<video:content_loc>https://leettube.dev/api/video/product-except-self.mp4</video:content_loc>
<video:duration>102</video:duration>
<video:publication_date>2026-10-05T03:02:03.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T03:02:03.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/trapping-rain-water</loc>
<video:video>
<video:title>Trapping Rain Water (LeetCode 42)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/trapping-rain-water.jpg</video:thumbnail_loc>
<video:description>How much rain pools between the bars? Walk in from both ends, always moving the side with the lower wall, whose water is already decided.</video:description>
<video:content_loc>https://leettube.dev/api/video/trapping-rain-water.mp4</video:content_loc>
<video:duration>95</video:duration>
<video:publication_date>2026-10-05T02:37:13.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:13.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/largest-rectangle</loc>
<video:video>
<video:title>Largest Rectangle in Histogram (LeetCode 84)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/largest-rectangle.jpg</video:thumbnail_loc>
<video:description>The biggest rectangle under a histogram. Keep a stack of rising bars, and when a shorter bar arrives, pop and measure each taller one.</video:description>
<video:content_loc>https://leettube.dev/api/video/largest-rectangle.mp4</video:content_loc>
<video:duration>95</video:duration>
<video:publication_date>2026-10-05T02:37:10.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:10.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/intro-trees</loc>
<video:video>
<video:title>Trees tutorial</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/intro-trees.jpg</video:thumbnail_loc>
<video:description>Trust each child to answer, then combine the answers at the node. A missing child is the base case, and three lines of code solve most tree problems.</video:description>
<video:content_loc>https://leettube.dev/api/video/intro-trees.mp4</video:content_loc>
<video:duration>45</video:duration>
<video:publication_date>2026-10-05T02:57:30.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:57:30.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/invert-binary-tree</loc>
<video:video>
<video:title>Invert Binary Tree (LeetCode 226)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/invert-binary-tree.jpg</video:thumbnail_loc>
<video:description>Mirror a binary tree. Swap a node's two children, then do the same to each child, all the way down.</video:description>
<video:content_loc>https://leettube.dev/api/video/invert-binary-tree.mp4</video:content_loc>
<video:duration>88</video:duration>
<video:publication_date>2026-10-05T02:37:09.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:09.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/maximum-depth</loc>
<video:video>
<video:title>Maximum Depth of Binary Tree (LeetCode 104)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/maximum-depth.jpg</video:thumbnail_loc>
<video:description>How deep does a binary tree go? Ask each child for its depth, take the bigger one and add one for yourself.</video:description>
<video:content_loc>https://leettube.dev/api/video/maximum-depth.mp4</video:content_loc>
<video:duration>89</video:duration>
<video:publication_date>2026-10-04T23:44:05.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-04T23:44:05.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/level-order-traversal</loc>
<video:video>
<video:title>Level Order Traversal (LeetCode 102)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/level-order-traversal.jpg</video:thumbnail_loc>
<video:description>Read a binary tree one level at a time. Keep a queue, and each round empty exactly the nodes that were in it when the round began.</video:description>
<video:content_loc>https://leettube.dev/api/video/level-order-traversal.mp4</video:content_loc>
<video:duration>90</video:duration>
<video:publication_date>2026-10-04T23:44:06.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-04T23:44:06.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/validate-bst</loc>
<video:video>
<video:title>Validate BST (LeetCode 98)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/validate-bst.jpg</video:thumbnail_loc>
<video:description>Is this a valid binary search tree? Checking each parent and child isn't enough; pass down the lowest and highest values each subtree is allowed.</video:description>
<video:content_loc>https://leettube.dev/api/video/validate-bst.mp4</video:content_loc>
<video:duration>98</video:duration>
<video:publication_date>2026-10-04T23:44:06.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-04T23:44:06.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/implement-trie</loc>
<video:video>
<video:title>Implement Trie (LeetCode 208)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/implement-trie.jpg</video:thumbnail_loc>
<video:description>Insert words, search them and check prefixes. A tree of letters lets words that share a prefix share a path.</video:description>
<video:content_loc>https://leettube.dev/api/video/implement-trie.mp4</video:content_loc>
<video:duration>93</video:duration>
<video:publication_date>2026-10-05T02:37:09.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:09.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/intro-backtracking</loc>
<video:video>
<video:title>Backtracking tutorial</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/intro-backtracking.jpg</video:thumbnail_loc>
<video:description>Build an answer one choice at a time and undo the ones that lead nowhere: choose, recurse, then un-choose so the next choice starts clean.</video:description>
<video:content_loc>https://leettube.dev/api/video/intro-backtracking.mp4</video:content_loc>
<video:duration>45</video:duration>
<video:publication_date>2026-10-05T02:57:31.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:57:31.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/subsets</loc>
<video:video>
<video:title>Subsets (LeetCode 78)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/subsets.jpg</video:thumbnail_loc>
<video:description>List every subset of a set of distinct numbers, empty one included. For each number, branch on taking it or leaving it.</video:description>
<video:content_loc>https://leettube.dev/api/video/subsets.mp4</video:content_loc>
<video:duration>97</video:duration>
<video:publication_date>2026-10-05T02:37:12.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:12.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/permutations</loc>
<video:video>
<video:title>Permutations (LeetCode 46)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/permutations.jpg</video:thumbnail_loc>
<video:description>List every order of a set of numbers. Fill one seat at a time with a number you haven't used, recurse, then take it back and try the next.</video:description>
<video:content_loc>https://leettube.dev/api/video/permutations.mp4</video:content_loc>
<video:duration>96</video:duration>
<video:publication_date>2026-10-05T02:57:29.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:57:29.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/combination-sum</loc>
<video:video>
<video:title>Combination Sum (LeetCode 39)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/combination-sum.jpg</video:thumbnail_loc>
<video:description>Find every combination that adds up to the target, reusing numbers as often as you like. Recurse with a start index so each combination appears once.</video:description>
<video:content_loc>https://leettube.dev/api/video/combination-sum.mp4</video:content_loc>
<video:duration>102</video:duration>
<video:publication_date>2026-10-05T03:02:02.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T03:02:02.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/word-search</loc>
<video:video>
<video:title>Word Search (LeetCode 79)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/word-search.jpg</video:thumbnail_loc>
<video:description>Can you spell a word through neighbouring letters in a grid? Try each path, mark the cells you use, and unmark them when you back out.</video:description>
<video:content_loc>https://leettube.dev/api/video/word-search.mp4</video:content_loc>
<video:duration>103</video:duration>
<video:publication_date>2026-10-05T04:16:56.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T04:16:56.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/intro-dynamic-programming</loc>
<video:video>
<video:title>Dynamic programming tutorial</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/intro-dynamic-programming.jpg</video:thumbnail_loc>
<video:description>Never solve the same problem twice. Save each answer as you recurse, or fill a table from the smallest case up.</video:description>
<video:content_loc>https://leettube.dev/api/video/intro-dynamic-programming.mp4</video:content_loc>
<video:duration>44</video:duration>
<video:publication_date>2026-10-05T02:57:31.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:57:31.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/climbing-stairs</loc>
<video:video>
<video:title>Climbing Stairs (LeetCode 70)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/climbing-stairs.jpg</video:thumbnail_loc>
<video:description>Count the ways up a staircase taking one or two steps at a time. Each stair's count is the sum of the two below it, so climb once and keep just two numbers.</video:description>
<video:content_loc>https://leettube.dev/api/video/climbing-stairs.mp4</video:content_loc>
<video:duration>85</video:duration>
<video:publication_date>2026-10-04T23:44:05.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-04T23:44:05.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/house-robber</loc>
<video:video>
<video:title>House Robber (LeetCode 198)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/house-robber.jpg</video:thumbnail_loc>
<video:description>Rob the most cash from a row of houses without hitting two neighbours. Carry the best haul so far, one house at a time.</video:description>
<video:content_loc>https://leettube.dev/api/video/house-robber.mp4</video:content_loc>
<video:duration>85</video:duration>
<video:publication_date>2026-10-05T02:37:09.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:09.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/coin-change</loc>
<video:video>
<video:title>Coin Change (LeetCode 322)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/coin-change.jpg</video:thumbnail_loc>
<video:description>The fewest coins that add up to an amount. Greedy fails, so build up from zero, reusing the best answer for each smaller amount.</video:description>
<video:content_loc>https://leettube.dev/api/video/coin-change.mp4</video:content_loc>
<video:duration>97</video:duration>
<video:publication_date>2026-10-05T02:37:07.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:07.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/longest-increasing-subsequence</loc>
<video:video>
<video:title>Longest Increasing Subsequence (LeetCode 300)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/longest-increasing-subsequence.jpg</video:thumbnail_loc>
<video:description>Find the longest strictly rising run you can pick out of a list, skipping but never reordering. Build the answer for each ending number from the ones before it, then a bonus O(n log n) trick.</video:description>
<video:content_loc>https://leettube.dev/api/video/longest-increasing-subsequence.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-05T02:57:29.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:57:29.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/edit-distance</loc>
<video:video>
<video:title>Edit Distance (LeetCode 72)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/edit-distance.jpg</video:thumbnail_loc>
<video:description>The fewest inserts, deletes and replaces to turn one word into another. Fill a table where each cell takes the cheapest of three neighbours.</video:description>
<video:content_loc>https://leettube.dev/api/video/edit-distance.mp4</video:content_loc>
<video:duration>98</video:duration>
<video:publication_date>2026-10-05T02:37:08.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:08.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/intro-graphs</loc>
<video:video>
<video:title>Graphs tutorial</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/intro-graphs.jpg</video:thumbnail_loc>
<video:description>Nodes and edges: explore outward from a start with a queue (breadth first) or a stack (depth first), stamping each node so you never loop.</video:description>
<video:content_loc>https://leettube.dev/api/video/intro-graphs.mp4</video:content_loc>
<video:duration>47</video:duration>
<video:publication_date>2026-10-05T02:57:31.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:57:31.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/number-of-islands</loc>
<video:video>
<video:title>Number of Islands (LeetCode 200)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/number-of-islands.jpg</video:thumbnail_loc>
<video:description>Count the islands in a grid of land and water. Scan for land, and sink each island you find so it's only counted once.</video:description>
<video:content_loc>https://leettube.dev/api/video/number-of-islands.mp4</video:content_loc>
<video:duration>99</video:duration>
<video:publication_date>2026-10-05T02:37:12.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:12.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/clone-graph</loc>
<video:video>
<video:title>Clone Graph (LeetCode 133)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/clone-graph.jpg</video:thumbnail_loc>
<video:description>Deep-copy a whole graph from one node. Walk it with depth-first search, and keep a map from each original to its copy so cycles are cloned once.</video:description>
<video:content_loc>https://leettube.dev/api/video/clone-graph.mp4</video:content_loc>
<video:duration>94</video:duration>
<video:publication_date>2026-10-05T04:26:13.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T04:26:13.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/course-schedule</loc>
<video:video>
<video:title>Course Schedule (LeetCode 207)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/course-schedule.jpg</video:thumbnail_loc>
<video:description>Decide whether you can finish every course given its prerequisites. Take courses with no locks left, and see if every course gets taken.</video:description>
<video:content_loc>https://leettube.dev/api/video/course-schedule.mp4</video:content_loc>
<video:duration>104</video:duration>
<video:publication_date>2026-10-05T02:37:08.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:08.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/network-delay-time</loc>
<video:video>
<video:title>Network Delay Time (LeetCode 743)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/network-delay-time.jpg</video:thumbnail_loc>
<video:description>How long until a signal reaches every tower? Dijkstra's algorithm settles the earliest arrival first, using a min-heap.</video:description>
<video:content_loc>https://leettube.dev/api/video/network-delay-time.mp4</video:content_loc>
<video:duration>96</video:duration>
<video:publication_date>2026-10-05T02:37:11.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:11.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/intro-greedy</loc>
<video:video>
<video:title>Greedy tutorial</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/intro-greedy.jpg</video:thumbnail_loc>
<video:description>Take what looks best right now and never go back. It works only when today's best pick can't hurt you later, so learn to spot when it's safe.</video:description>
<video:content_loc>https://leettube.dev/api/video/intro-greedy.mp4</video:content_loc>
<video:duration>46</video:duration>
<video:publication_date>2026-10-05T03:02:03.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T03:02:03.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/jump-game</loc>
<video:video>
<video:title>Jump Game (LeetCode 55)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/jump-game.jpg</video:thumbnail_loc>
<video:description>Can you hop from the first index to the last? Walk once, keeping the farthest spot you can reach; if you ever stand past it, you're stuck.</video:description>
<video:content_loc>https://leettube.dev/api/video/jump-game.mp4</video:content_loc>
<video:duration>95</video:duration>
<video:publication_date>2026-10-05T03:02:02.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T03:02:02.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/jump-game-ii</loc>
<video:video>
<video:title>Jump Game II (LeetCode 45)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/jump-game-ii.jpg</video:thumbnail_loc>
<video:description>Now count the fewest hops to the end. Treat each jump as a window of reachable spots, and only jump when you walk off its edge.</video:description>
<video:content_loc>https://leettube.dev/api/video/jump-game-ii.mp4</video:content_loc>
<video:duration>97</video:duration>
<video:publication_date>2026-10-05T04:16:55.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T04:16:55.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/gas-station</loc>
<video:video>
<video:title>Gas Station (LeetCode 134)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/gas-station.jpg</video:thumbnail_loc>
<video:description>Find the station where you can drive the whole loop. If the total gas covers the total cost, an answer exists; whenever the tank goes negative, start again from the next station.</video:description>
<video:content_loc>https://leettube.dev/api/video/gas-station.mp4</video:content_loc>
<video:duration>104</video:duration>
<video:publication_date>2026-10-05T03:10:08.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T03:10:08.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/non-overlapping-intervals</loc>
<video:video>
<video:title>Non-overlapping Intervals (LeetCode 435)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/non-overlapping-intervals.jpg</video:thumbnail_loc>
<video:description>Remove the fewest intervals so the rest don't overlap. Sort by end time and keep whatever finishes first; every clash after that gets cut.</video:description>
<video:content_loc>https://leettube.dev/api/video/non-overlapping-intervals.mp4</video:content_loc>
<video:duration>98</video:duration>
<video:publication_date>2026-10-05T03:10:08.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T03:10:08.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/intro-bits-and-math</loc>
<video:video>
<video:title>Bits and math tutorial</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/intro-bits-and-math.jpg</video:thumbnail_loc>
<video:description>Every number is a row of lamps, on or off. AND, OR and XOR flip them all at once, and x XOR x is zero, so pairs cancel.</video:description>
<video:content_loc>https://leettube.dev/api/video/intro-bits-and-math.mp4</video:content_loc>
<video:duration>46</video:duration>
<video:publication_date>2026-10-05T03:10:10.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T03:10:10.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/single-number</loc>
<video:video>
<video:title>Single Number (LeetCode 136)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/single-number.jpg</video:thumbnail_loc>
<video:description>Every number appears twice except one. XOR them all together: pairs cancel to zero, and the loner is all that's left.</video:description>
<video:content_loc>https://leettube.dev/api/video/single-number.mp4</video:content_loc>
<video:duration>98</video:duration>
<video:publication_date>2026-10-05T03:10:09.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T03:10:09.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/number-of-1-bits</loc>
<video:video>
<video:title>Number of 1 Bits (LeetCode 191)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/number-of-1-bits.jpg</video:thumbnail_loc>
<video:description>Count the ones in a number's binary form. n & (n - 1) clears the lowest one bit, so count how many times you can do it before reaching zero.</video:description>
<video:content_loc>https://leettube.dev/api/video/number-of-1-bits.mp4</video:content_loc>
<video:duration>102</video:duration>
<video:publication_date>2026-10-05T03:10:09.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T03:10:09.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/rotate-image</loc>
<video:video>
<video:title>Rotate Image (LeetCode 48)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/rotate-image.jpg</video:thumbnail_loc>
<video:description>Spin a square grid a quarter turn without a second grid: flip it across the diagonal, then mirror each row.</video:description>
<video:content_loc>https://leettube.dev/api/video/rotate-image.mp4</video:content_loc>
<video:duration>97</video:duration>
<video:publication_date>2026-10-05T03:14:13.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T03:14:13.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/missing-number</loc>
<video:video>
<video:title>Missing Number (LeetCode 268)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/missing-number.jpg</video:thumbnail_loc>
<video:description>One number from 0 to n is gone. Add up what 0 to n should total, subtract what you have, and the gap is the answer.</video:description>
<video:content_loc>https://leettube.dev/api/video/missing-number.mp4</video:content_loc>
<video:duration>103</video:duration>
<video:publication_date>2026-10-05T04:13:17.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T04:13:17.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/intro-design</loc>
<video:video>
<video:title>Design tutorial</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/intro-design.jpg</video:thumbnail_loc>
<video:description>Design problems hand you a blueprint with promised costs. Keep a little extra next to the data, like a map or a second value, so every method runs in constant time.</video:description>
<video:content_loc>https://leettube.dev/api/video/intro-design.mp4</video:content_loc>
<video:duration>44</video:duration>
<video:publication_date>2026-10-05T02:57:32.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:57:32.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/min-stack</loc>
<video:video>
<video:title>Min Stack (LeetCode 155)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/min-stack.jpg</video:thumbnail_loc>
<video:description>A stack that also reports its smallest value in constant time. Store each push next to the minimum at that moment, so popping brings the old minimum back.</video:description>
<video:content_loc>https://leettube.dev/api/video/min-stack.mp4</video:content_loc>
<video:duration>86</video:duration>
<video:publication_date>2026-10-05T02:57:29.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:57:29.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/lru-cache</loc>
<video:video>
<video:title>LRU Cache (LeetCode 146)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/lru-cache.jpg</video:thumbnail_loc>
<video:description>A fixed-size cache with constant-time get and put that evicts the least recently used key. A hash map finds the node, and a linked list keeps the order.</video:description>
<video:content_loc>https://leettube.dev/api/video/lru-cache.mp4</video:content_loc>
<video:duration>94</video:duration>
<video:publication_date>2026-10-05T02:37:11.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T02:37:11.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/find-median-from-data-stream</loc>
<video:video>
<video:title>Find Median from Data Stream (LeetCode 295)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/find-median-from-data-stream.jpg</video:thumbnail_loc>
<video:description>Keep the running median as numbers stream in. Split them across two heaps, a max-heap for the low half and a min-heap for the high half.</video:description>
<video:content_loc>https://leettube.dev/api/video/find-median-from-data-stream.mp4</video:content_loc>
<video:duration>96</video:duration>
<video:publication_date>2026-10-05T04:26:14.000Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T04:26:14.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
