<?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-06T15:35:40.725Z</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/worlds/warm-up</loc>
<lastmod>2026-10-06T15:35:40.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://leettube.dev/worlds/arrays</loc>
<lastmod>2026-10-06T15:35:40.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://leettube.dev/worlds/trees</loc>
<lastmod>2026-10-06T15:35:40.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://leettube.dev/worlds/backtracking</loc>
<lastmod>2026-10-06T15:35:40.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://leettube.dev/worlds/dynamic-programming</loc>
<lastmod>2026-10-06T15:35:40.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://leettube.dev/worlds/graphs</loc>
<lastmod>2026-10-06T15:35:40.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://leettube.dev/worlds/greedy</loc>
<lastmod>2026-10-06T15:35:40.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://leettube.dev/worlds/bits-and-math</loc>
<lastmod>2026-10-06T15:35:40.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://leettube.dev/worlds/design</loc>
<lastmod>2026-10-06T15:35:40.725Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</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-05T21:56:10.668Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:10.668Z</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-05T21:56:20.732Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:20.732Z</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-05T21:56:21.351Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:21.351Z</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-05T21:56:04.813Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:04.813Z</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-05T21:56:12.317Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:12.317Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/intersection-of-two-linked-lists</loc>
<video:video>
<video:title>Intersection of Two Linked Lists (LeetCode 160)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/intersection-of-two-linked-lists.jpg</video:thumbnail_loc>
<video:description>Find the node where two lists join: walk each list, switch to the other head at the end, and both runners meet at the join.</video:description>
<video:content_loc>https://leettube.dev/api/video/intersection-of-two-linked-lists.mp4</video:content_loc>
<video:duration>98</video:duration>
<video:publication_date>2026-10-06T12:21:37.442Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T12:21:37.442Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/find-the-duplicate-number</loc>
<video:video>
<video:title>Find the Duplicate Number (LeetCode 287)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/find-the-duplicate-number.jpg</video:thumbnail_loc>
<video:description>n + 1 numbers in 1..n, one repeated. Treat each value as a pointer to an index: the duplicate starts a cycle, and fast and slow runners find it.</video:description>
<video:content_loc>https://leettube.dev/api/video/find-the-duplicate-number.mp4</video:content_loc>
<video:duration>97</video:duration>
<video:publication_date>2026-10-06T09:36:10.111Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T09:36:10.111Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/reverse-linked-list</loc>
<video:video>
<video:title>Reverse Linked List (LeetCode 206)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/reverse-linked-list.jpg</video:thumbnail_loc>
<video:description>Turn every arrow of a linked list around in place. Keep three pointers: save next, flip current back to previous, step forward.</video:description>
<video:content_loc>https://leettube.dev/api/video/reverse-linked-list.mp4</video:content_loc>
<video:duration>96</video:duration>
<video:publication_date>2026-10-05T21:56:18.067Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:18.067Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/merge-two-sorted-lists</loc>
<video:video>
<video:title>Merge Two Sorted Lists (LeetCode 21)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/merge-two-sorted-lists.jpg</video:thumbnail_loc>
<video:description>Splice two sorted lists into one. Keep a tail pointer behind a dummy head and always take the smaller front node.</video:description>
<video:content_loc>https://leettube.dev/api/video/merge-two-sorted-lists.mp4</video:content_loc>
<video:duration>86</video:duration>
<video:publication_date>2026-10-05T21:56:14.369Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:14.369Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/reorder-list</loc>
<video:video>
<video:title>Reorder List (LeetCode 143)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/reorder-list.jpg</video:thumbnail_loc>
<video:description>Weave a linked list first, last, second, second to last. Find the middle with slow and fast pointers, reverse the back half, then merge.</video:description>
<video:content_loc>https://leettube.dev/api/video/reorder-list.mp4</video:content_loc>
<video:duration>98</video:duration>
<video:publication_date>2026-10-06T01:54:38.690Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T01:54:38.690Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/palindrome-linked-list</loc>
<video:video>
<video:title>Palindrome Linked List (LeetCode 234)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/palindrome-linked-list.jpg</video:thumbnail_loc>
<video:description>Does a linked list read the same both ways? Find the middle with fast and slow runners, reverse the back half, then compare the halves node by node.</video:description>
<video:content_loc>https://leettube.dev/api/video/palindrome-linked-list.mp4</video:content_loc>
<video:duration>98</video:duration>
<video:publication_date>2026-10-06T09:11:05.817Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T09:11:05.817Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/remove-nth-node-from-end-of-list</loc>
<video:video>
<video:title>Remove Nth Node From End of List (LeetCode 19)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/remove-nth-node-from-end-of-list.jpg</video:thumbnail_loc>
<video:description>Remove the nth node from the end in one pass: start a fast runner n steps ahead, move both until it falls off, then unlink the next node.</video:description>
<video:content_loc>https://leettube.dev/api/video/remove-nth-node-from-end-of-list.mp4</video:content_loc>
<video:duration>98</video:duration>
<video:publication_date>2026-10-06T05:21:54.321Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T05:21:54.321Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/add-two-numbers</loc>
<video:video>
<video:title>Add Two Numbers (LeetCode 2)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/add-two-numbers.jpg</video:thumbnail_loc>
<video:description>Two numbers stored as reversed linked lists: walk both at once, add digit by digit like on paper, and carry the 1 into the next node.</video:description>
<video:content_loc>https://leettube.dev/api/video/add-two-numbers.mp4</video:content_loc>
<video:duration>98</video:duration>
<video:publication_date>2026-10-06T05:24:01.311Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T05:24:01.311Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/contains-duplicate</loc>
<video:video>
<video:title>Contains Duplicate (LeetCode 217)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/contains-duplicate.jpg</video:thumbnail_loc>
<video:description>Does any number show up twice? Walk the list once with a set of values you've already seen, and stop the moment one repeats.</video:description>
<video:content_loc>https://leettube.dev/api/video/contains-duplicate.mp4</video:content_loc>
<video:duration>82</video:duration>
<video:publication_date>2026-10-05T21:56:06.784Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:06.784Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/valid-anagram</loc>
<video:video>
<video:title>Valid Anagram (LeetCode 242)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/valid-anagram.jpg</video:thumbnail_loc>
<video:description>Check if two words use exactly the same letters. Count up for every letter in one, count down for the other, and see if every tally hits zero.</video:description>
<video:content_loc>https://leettube.dev/api/video/valid-anagram.mp4</video:content_loc>
<video:duration>89</video:duration>
<video:publication_date>2026-10-05T21:56:21.497Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:21.497Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/ransom-note</loc>
<video:video>
<video:title>Ransom Note (LeetCode 383)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/ransom-note.jpg</video:thumbnail_loc>
<video:description>Can the note be cut from the magazine? Count every magazine letter, then spend one per note letter and fail the moment a count runs out.</video:description>
<video:content_loc>https://leettube.dev/api/video/ransom-note.mp4</video:content_loc>
<video:duration>99</video:duration>
<video:publication_date>2026-10-06T15:15:28.802Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T15:15:28.802Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/valid-palindrome</loc>
<video:video>
<video:title>Valid Palindrome (LeetCode 125)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/valid-palindrome.jpg</video:thumbnail_loc>
<video:description>Check if a phrase reads the same both ways, ignoring case and punctuation. Walk in from both ends, skip the junk, and compare letters.</video:description>
<video:content_loc>https://leettube.dev/api/video/valid-palindrome.mp4</video:content_loc>
<video:duration>93</video:duration>
<video:publication_date>2026-10-06T00:53:14.725Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T00:53:14.725Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/roman-to-integer</loc>
<video:video>
<video:title>Roman to Integer (LeetCode 13)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/roman-to-integer.jpg</video:thumbnail_loc>
<video:description>Turn a Roman numeral into a number. Look up each letter's value and add it, unless the next letter is bigger, then subtract it.</video:description>
<video:content_loc>https://leettube.dev/api/video/roman-to-integer.mp4</video:content_loc>
<video:duration>109</video:duration>
<video:publication_date>2026-10-06T01:18:24.122Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T01:18:24.122Z</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-05T21:56:09.639Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:09.639Z</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-05T21:56:04.815Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:04.815Z</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-05T21:56:14.064Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:14.064Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/group-anagrams</loc>
<video:video>
<video:title>Group Anagrams (LeetCode 49)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/group-anagrams.jpg</video:thumbnail_loc>
<video:description>Group words that are anagrams of each other. Sort each word's letters into a key, then file every word under its key in a hash map.</video:description>
<video:content_loc>https://leettube.dev/api/video/group-anagrams.mp4</video:content_loc>
<video:duration>94</video:duration>
<video:publication_date>2026-10-05T21:56:08.439Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:08.439Z</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-05T21:56:20.257Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:20.257Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/longest-consecutive-sequence</loc>
<video:video>
<video:title>Longest Consecutive Sequence (LeetCode 128)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/longest-consecutive-sequence.jpg</video:thumbnail_loc>
<video:description>Find the longest run of consecutive numbers in an unsorted list. Put them in a set, and only count up from numbers with no left neighbour.</video:description>
<video:content_loc>https://leettube.dev/api/video/longest-consecutive-sequence.mp4</video:content_loc>
<video:duration>95</video:duration>
<video:publication_date>2026-10-06T01:47:25.049Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T01:47:25.049Z</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-05T21:56:13.082Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:13.082Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/minimum-window-substring</loc>
<video:video>
<video:title>Minimum Window Substring (LeetCode 76)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/minimum-window-substring.jpg</video:thumbnail_loc>
<video:description>Find the shortest stretch of s holding every letter of t. Grow the window right until it's complete, then shrink from the left while it stays so.</video:description>
<video:content_loc>https://leettube.dev/api/video/minimum-window-substring.mp4</video:content_loc>
<video:duration>102</video:duration>
<video:publication_date>2026-10-05T21:56:15.432Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:15.432Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/sliding-window-maximum</loc>
<video:video>
<video:title>Sliding Window Maximum (LeetCode 239)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/sliding-window-maximum.jpg</video:thumbnail_loc>
<video:description>Report the biggest number in every window of k as it slides. Keep a deque of shrinking values, so the front is always the max.</video:description>
<video:content_loc>https://leettube.dev/api/video/sliding-window-maximum.mp4</video:content_loc>
<video:duration>97</video:duration>
<video:publication_date>2026-10-06T02:20:59.375Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T02:20:59.375Z</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-05T21:56:19.309Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:19.309Z</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-05T21:56:17.695Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:17.695Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/3sum</loc>
<video:video>
<video:title>3Sum (LeetCode 15)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/3sum.jpg</video:thumbnail_loc>
<video:description>Find every triple that sums to zero, with no repeats. Sort, fix one number, then close in from both ends with two pointers.</video:description>
<video:content_loc>https://leettube.dev/api/video/3sum.mp4</video:content_loc>
<video:duration>105</video:duration>
<video:publication_date>2026-10-05T21:56:04.697Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:04.697Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/container-with-most-water</loc>
<video:video>
<video:title>Container With Most Water (LeetCode 11)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/container-with-most-water.jpg</video:thumbnail_loc>
<video:description>Pick two walls that hold the most water. Start at both ends and always move the shorter wall inward, since it caps the area.</video:description>
<video:content_loc>https://leettube.dev/api/video/container-with-most-water.mp4</video:content_loc>
<video:duration>102</video:duration>
<video:publication_date>2026-10-05T21:56:06.537Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:06.537Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/sort-colors</loc>
<video:video>
<video:title>Sort Colors (LeetCode 75)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/sort-colors.jpg</video:thumbnail_loc>
<video:description>Sort an array of 0s, 1s and 2s in one pass: three pointers sweep zeros to the front and twos to the back, leaving ones in the middle.</video:description>
<video:content_loc>https://leettube.dev/api/video/sort-colors.mp4</video:content_loc>
<video:duration>103</video:duration>
<video:publication_date>2026-10-06T15:35:40.725Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T15:35:40.725Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/evaluate-reverse-polish-notation</loc>
<video:video>
<video:title>Evaluate Reverse Polish Notation (LeetCode 150)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/evaluate-reverse-polish-notation.jpg</video:thumbnail_loc>
<video:description>Work out an expression written with operators after their numbers. Push each number on a stack; each operator pops two and pushes the result.</video:description>
<video:content_loc>https://leettube.dev/api/video/evaluate-reverse-polish-notation.mp4</video:content_loc>
<video:duration>116</video:duration>
<video:publication_date>2026-10-06T03:57:09.077Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T03:57:09.077Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/daily-temperatures</loc>
<video:video>
<video:title>Daily Temperatures (LeetCode 739)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/daily-temperatures.jpg</video:thumbnail_loc>
<video:description>For each day, count the wait until a warmer one. Keep a stack of days still waiting; a warm day pops every colder day below it.</video:description>
<video:content_loc>https://leettube.dev/api/video/daily-temperatures.mp4</video:content_loc>
<video:duration>108</video:duration>
<video:publication_date>2026-10-06T02:25:20.768Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T02:25:20.768Z</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-05T21:56:20.329Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:20.329Z</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-05T21:56:12.296Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:12.296Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/search-in-rotated-sorted-array</loc>
<video:video>
<video:title>Search in Rotated Sorted Array (LeetCode 33)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/search-in-rotated-sorted-array.jpg</video:thumbnail_loc>
<video:description>A sorted list was rotated, yet binary search still works: one half is always in order, so check if the target sits there and drop the other.</video:description>
<video:content_loc>https://leettube.dev/api/video/search-in-rotated-sorted-array.mp4</video:content_loc>
<video:duration>95</video:duration>
<video:publication_date>2026-10-06T05:16:56.171Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T05:16:56.171Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/median-of-two-sorted-arrays</loc>
<video:video>
<video:title>Median of Two Sorted Arrays (LeetCode 4)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/median-of-two-sorted-arrays.jpg</video:thumbnail_loc>
<video:description>Find the median of two sorted arrays in log time. Binary search a cut in the shorter one so both left halves hold the smaller half.</video:description>
<video:content_loc>https://leettube.dev/api/video/median-of-two-sorted-arrays.mp4</video:content_loc>
<video:duration>104</video:duration>
<video:publication_date>2026-10-06T01:50:32.862Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T01:50:32.862Z</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-05T21:56:10.462Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:10.462Z</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-05T21:56:11.154Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:11.154Z</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-05T21:56:13.534Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:13.534Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/same-tree</loc>
<video:video>
<video:title>Same Tree (LeetCode 100)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/same-tree.jpg</video:thumbnail_loc>
<video:description>Are two binary trees identical? Compare the two roots, then trust recursion to compare the left pair and the right pair. A mismatch anywhere ends it.</video:description>
<video:content_loc>https://leettube.dev/api/video/same-tree.mp4</video:content_loc>
<video:duration>102</video:duration>
<video:publication_date>2026-10-06T05:19:41.152Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T05:19:41.152Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/symmetric-tree</loc>
<video:video>
<video:title>Symmetric Tree (LeetCode 101)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/symmetric-tree.jpg</video:thumbnail_loc>
<video:description>Is a binary tree its own mirror? Compare the left and right subtrees in pairs: outer with outer, inner with inner, all the way down.</video:description>
<video:content_loc>https://leettube.dev/api/video/symmetric-tree.mp4</video:content_loc>
<video:duration>95</video:duration>
<video:publication_date>2026-10-06T14:28:52.219Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T14:28:52.219Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/diameter-of-binary-tree</loc>
<video:video>
<video:title>Diameter of Binary Tree (LeetCode 543)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/diameter-of-binary-tree.jpg</video:thumbnail_loc>
<video:description>Find the longest path between any two nodes. Each node asks its children for their heights, and the path bending through it is left plus right.</video:description>
<video:content_loc>https://leettube.dev/api/video/diameter-of-binary-tree.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-05T21:56:08.127Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:08.127Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/balanced-binary-tree</loc>
<video:video>
<video:title>Balanced Binary Tree (LeetCode 110)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/balanced-binary-tree.jpg</video:thumbnail_loc>
<video:description>Is every node's left and right height within one? Return each subtree's height from the bottom up, and a -1 the moment any node is lopsided.</video:description>
<video:content_loc>https://leettube.dev/api/video/balanced-binary-tree.mp4</video:content_loc>
<video:duration>99</video:duration>
<video:publication_date>2026-10-06T09:38:02.648Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T09:38:02.648Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/subtree-of-another-tree</loc>
<video:video>
<video:title>Subtree of Another Tree (LeetCode 572)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/subtree-of-another-tree.jpg</video:thumbnail_loc>
<video:description>Check if one binary tree appears inside another. Try every node as a starting point and run a same-tree check from there.</video:description>
<video:content_loc>https://leettube.dev/api/video/subtree-of-another-tree.mp4</video:content_loc>
<video:duration>99</video:duration>
<video:publication_date>2026-10-06T02:19:06.596Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T02:19:06.596Z</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-05T21:56:12.020Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:12.020Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/binary-tree-right-side-view</loc>
<video:video>
<video:title>Binary Tree Right Side View (LeetCode 199)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/binary-tree-right-side-view.jpg</video:thumbnail_loc>
<video:description>List the nodes you'd see standing to the right of a binary tree. Walk it level by level and keep the last node on each level.</video:description>
<video:content_loc>https://leettube.dev/api/video/binary-tree-right-side-view.mp4</video:content_loc>
<video:duration>93</video:duration>
<video:publication_date>2026-10-06T02:16:50.080Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T02:16:50.080Z</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-05T21:56:21.638Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:21.638Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/convert-sorted-array-to-binary-search-tree</loc>
<video:video>
<video:title>Convert Sorted Array to Binary Search Tree (LeetCode 108)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/convert-sorted-array-to-binary-search-tree.jpg</video:thumbnail_loc>
<video:description>Turn a sorted array into a height-balanced BST. The middle value becomes the root, and each half recursively builds its own subtree.</video:description>
<video:content_loc>https://leettube.dev/api/video/convert-sorted-array-to-binary-search-tree.mp4</video:content_loc>
<video:duration>97</video:duration>
<video:publication_date>2026-10-06T10:28:43.756Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T10:28:43.756Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/kth-smallest-in-bst</loc>
<video:video>
<video:title>Kth Smallest Element in a BST (LeetCode 230)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/kth-smallest-in-bst.jpg</video:thumbnail_loc>
<video:description>Find the kth smallest value in a BST. An inorder walk visits values in sorted order, so stop at the kth node you reach.</video:description>
<video:content_loc>https://leettube.dev/api/video/kth-smallest-in-bst.mp4</video:content_loc>
<video:duration>98</video:duration>
<video:publication_date>2026-10-05T21:56:11.266Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:11.266Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/lowest-common-ancestor</loc>
<video:video>
<video:title>Lowest Common Ancestor (LeetCode 236)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/lowest-common-ancestor.jpg</video:thumbnail_loc>
<video:description>Find the deepest node above two targets in one pass: each node reports what it found, and the node where both sides answer wins.</video:description>
<video:content_loc>https://leettube.dev/api/video/lowest-common-ancestor.mp4</video:content_loc>
<video:duration>94</video:duration>
<video:publication_date>2026-10-05T21:56:13.121Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:13.121Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/construct-binary-tree-from-preorder-and-inorder</loc>
<video:video>
<video:title>Construct Binary Tree from Preorder and Inorder Traversal (LeetCode 105)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/construct-binary-tree-from-preorder-and-inorder.jpg</video:thumbnail_loc>
<video:description>Rebuild a tree from two traversals. Preorder names each root; its spot in inorder splits the left and right subtrees.</video:description>
<video:content_loc>https://leettube.dev/api/video/construct-binary-tree-from-preorder-and-inorder.mp4</video:content_loc>
<video:duration>107</video:duration>
<video:publication_date>2026-10-05T21:56:06.188Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:06.188Z</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-05T21:56:09.268Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:09.268Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/binary-tree-maximum-path-sum</loc>
<video:video>
<video:title>Binary Tree Maximum Path Sum (LeetCode 124)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/binary-tree-maximum-path-sum.jpg</video:thumbnail_loc>
<video:description>Find the best path anywhere in a tree. Each node reports its best one-sided branch upward and checks the path that bends through it.</video:description>
<video:content_loc>https://leettube.dev/api/video/binary-tree-maximum-path-sum.mp4</video:content_loc>
<video:duration>103</video:duration>
<video:publication_date>2026-10-05T21:56:04.630Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:04.630Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/binary-tree-cameras</loc>
<video:video>
<video:title>Binary Tree Cameras (LeetCode 968)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/binary-tree-cameras.jpg</video:thumbnail_loc>
<video:description>Fewest cameras to watch every node: work up from the leaves with three states, put a camera on any parent of an unwatched child.</video:description>
<video:content_loc>https://leettube.dev/api/video/binary-tree-cameras.mp4</video:content_loc>
<video:duration>97</video:duration>
<video:publication_date>2026-10-06T15:13:32.592Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T15:13:32.592Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/serialize-and-deserialize-binary-tree</loc>
<video:video>
<video:title>Serialize and Deserialize Binary Tree (LeetCode 297)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/serialize-and-deserialize-binary-tree.jpg</video:thumbnail_loc>
<video:description>Turn a binary tree into a string and back. Write it in preorder with a marker for every missing child, then read it back the same way.</video:description>
<video:content_loc>https://leettube.dev/api/video/serialize-and-deserialize-binary-tree.mp4</video:content_loc>
<video:duration>103</video:duration>
<video:publication_date>2026-10-06T04:04:36.166Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T04:04:36.166Z</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-05T21:56:09.439Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:09.439Z</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-05T21:56:19.631Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:19.631Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/subsets-ii</loc>
<video:video>
<video:title>Subsets II (LeetCode 90)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/subsets-ii.jpg</video:thumbnail_loc>
<video:description>List every subset of a list that has duplicates, with no repeats. Sort first, then skip a value already tried at the same depth.</video:description>
<video:content_loc>https://leettube.dev/api/video/subsets-ii.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-06T04:14:21.666Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T04:14:21.666Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/combinations</loc>
<video:video>
<video:title>Combinations (LeetCode 77)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/combinations.jpg</video:thumbnail_loc>
<video:description>Every way to choose k numbers from 1 to n. Pick the next number only from those after the last pick, recurse, then undo the pick and try the next.</video:description>
<video:content_loc>https://leettube.dev/api/video/combinations.mp4</video:content_loc>
<video:duration>102</video:duration>
<video:publication_date>2026-10-06T10:26:53.243Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T10:26:53.243Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/generate-parentheses</loc>
<video:video>
<video:title>Generate Parentheses (LeetCode 22)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/generate-parentheses.jpg</video:thumbnail_loc>
<video:description>List every balanced string of n pairs of parentheses. Add an opener while you have one left, and a closer only when it has a match.</video:description>
<video:content_loc>https://leettube.dev/api/video/generate-parentheses.mp4</video:content_loc>
<video:duration>99</video:duration>
<video:publication_date>2026-10-06T00:55:16.542Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T00:55:16.542Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/letter-combinations</loc>
<video:video>
<video:title>Letter Combinations (LeetCode 17)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/letter-combinations.jpg</video:thumbnail_loc>
<video:description>Spell every word a phone number could make. Fill one position at a time from its key, recurse for the rest, then pop and try the next letter.</video:description>
<video:content_loc>https://leettube.dev/api/video/letter-combinations.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-05T21:56:12.014Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:12.014Z</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-05T21:56:17.286Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:17.286Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/permutations-ii</loc>
<video:video>
<video:title>Permutations II (LeetCode 47)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/permutations-ii.jpg</video:thumbnail_loc>
<video:description>Every distinct ordering of numbers that may repeat. Sort first, then skip a copy whenever its twin to the left is still unused in this branch.</video:description>
<video:content_loc>https://leettube.dev/api/video/permutations-ii.mp4</video:content_loc>
<video:duration>104</video:duration>
<video:publication_date>2026-10-06T09:32:34.705Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T09:32:34.705Z</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-05T21:56:06.030Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:06.030Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/combination-sum-ii</loc>
<video:video>
<video:title>Combination Sum II (LeetCode 40)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/combination-sum-ii.jpg</video:thumbnail_loc>
<video:description>Find every combination that sums to a target, using each number once. Sort, skip repeats at the same depth, and stop once numbers get too big.</video:description>
<video:content_loc>https://leettube.dev/api/video/combination-sum-ii.mp4</video:content_loc>
<video:duration>112</video:duration>
<video:publication_date>2026-10-06T04:29:43.863Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T04:29:43.863Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/combination-sum-iii</loc>
<video:video>
<video:title>Combination Sum III (LeetCode 216)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/combination-sum-iii.jpg</video:thumbnail_loc>
<video:description>Every set of k distinct digits from 1 to 9 that sums to n: pick in increasing order, track what's left, and stop once a digit is too big.</video:description>
<video:content_loc>https://leettube.dev/api/video/combination-sum-iii.mp4</video:content_loc>
<video:duration>95</video:duration>
<video:publication_date>2026-10-06T12:16:08.668Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T12:16:08.668Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/partition-to-k-equal-sum-subsets</loc>
<video:video>
<video:title>Partition to K Equal Sum Subsets (LeetCode 698)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/partition-to-k-equal-sum-subsets.jpg</video:thumbnail_loc>
<video:description>Split numbers into k groups with equal sums: find the target, place the biggest numbers first, and skip buckets that repeat a sum.</video:description>
<video:content_loc>https://leettube.dev/api/video/partition-to-k-equal-sum-subsets.mp4</video:content_loc>
<video:duration>99</video:duration>
<video:publication_date>2026-10-06T15:19:06.187Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T15:19:06.187Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/palindrome-partitioning</loc>
<video:video>
<video:title>Palindrome Partitioning (LeetCode 131)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/palindrome-partitioning.jpg</video:thumbnail_loc>
<video:description>Split a string into palindromes every possible way. Cut off a palindrome prefix, recurse on the rest, then undo the cut and try a longer one.</video:description>
<video:content_loc>https://leettube.dev/api/video/palindrome-partitioning.mp4</video:content_loc>
<video:duration>105</video:duration>
<video:publication_date>2026-10-05T21:56:16.280Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:16.280Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/restore-ip-addresses</loc>
<video:video>
<video:title>Restore IP Addresses (LeetCode 93)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/restore-ip-addresses.jpg</video:thumbnail_loc>
<video:description>Split a digit string into four valid IP parts: try a 1, 2 or 3 digit chunk, recurse, and back up when a part tops 255 or has a leading zero.</video:description>
<video:content_loc>https://leettube.dev/api/video/restore-ip-addresses.mp4</video:content_loc>
<video:duration>101</video:duration>
<video:publication_date>2026-10-06T06:19:05.954Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T06:19:05.954Z</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-05T21:56:23.735Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:23.735Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/word-search-ii</loc>
<video:video>
<video:title>Word Search II (LeetCode 212)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/word-search-ii.jpg</video:thumbnail_loc>
<video:description>Find every word from a list on a letter grid. Build a trie of the words and walk the board once, following only paths the trie allows.</video:description>
<video:content_loc>https://leettube.dev/api/video/word-search-ii.mp4</video:content_loc>
<video:duration>98</video:duration>
<video:publication_date>2026-10-05T21:56:22.273Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:22.273Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/n-queens</loc>
<video:video>
<video:title>N-Queens (LeetCode 51)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/n-queens.jpg</video:thumbnail_loc>
<video:description>Place n queens so none can attack another. Go row by row, track the columns and both diagonals in use, and back up at dead ends.</video:description>
<video:content_loc>https://leettube.dev/api/video/n-queens.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-05T21:56:15.118Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:15.118Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/n-queens-ii</loc>
<video:video>
<video:title>N-Queens II (LeetCode 52)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/n-queens-ii.jpg</video:thumbnail_loc>
<video:description>Count the ways to place n queens with no attacks: one queen per row, three sets for columns and diagonals, undo and try the next.</video:description>
<video:content_loc>https://leettube.dev/api/video/n-queens-ii.mp4</video:content_loc>
<video:duration>96</video:duration>
<video:publication_date>2026-10-06T14:32:39.648Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T14:32:39.648Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/sudoku-solver</loc>
<video:video>
<video:title>Sudoku Solver (LeetCode 37)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/sudoku-solver.jpg</video:thumbnail_loc>
<video:description>Fill a Sudoku grid so every row, column and box holds 1 to 9. Try a digit, keep going while it fits, and undo it when you hit a dead end.</video:description>
<video:content_loc>https://leettube.dev/api/video/sudoku-solver.mp4</video:content_loc>
<video:duration>101</video:duration>
<video:publication_date>2026-10-06T00:49:16.711Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T00:49:16.711Z</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-05T21:56:10.190Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:10.190Z</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-05T21:56:05.512Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:05.512Z</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-05T21:56:08.847Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:08.847Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/house-robber-ii</loc>
<video:video>
<video:title>House Robber II (LeetCode 213)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/house-robber-ii.jpg</video:thumbnail_loc>
<video:description>Rob houses in a circle without hitting two neighbours. The first and last touch, so run House Robber twice: once without each end.</video:description>
<video:content_loc>https://leettube.dev/api/video/house-robber-ii.mp4</video:content_loc>
<video:duration>95</video:duration>
<video:publication_date>2026-10-06T04:20:46.505Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T04:20:46.505Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/maximum-product-subarray</loc>
<video:video>
<video:title>Maximum Product Subarray (LeetCode 152)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/maximum-product-subarray.jpg</video:thumbnail_loc>
<video:description>Largest product of a contiguous run: track the high and the low at each step, because a negative number swaps them.</video:description>
<video:content_loc>https://leettube.dev/api/video/maximum-product-subarray.mp4</video:content_loc>
<video:duration>101</video:duration>
<video:publication_date>2026-10-06T11:22:55.303Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T11:22:55.303Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/best-time-to-buy-and-sell-stock-with-cooldown</loc>
<video:video>
<video:title>Best Time to Buy and Sell Stock with Cooldown (LeetCode 309)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/best-time-to-buy-and-sell-stock-with-cooldown.jpg</video:thumbnail_loc>
<video:description>Max profit when every sale forces a one-day rest: track three states each day (holding, just sold, resting) and step them forward together.</video:description>
<video:content_loc>https://leettube.dev/api/video/best-time-to-buy-and-sell-stock-with-cooldown.mp4</video:content_loc>
<video:duration>102</video:duration>
<video:publication_date>2026-10-06T15:11:33.810Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T15:11:33.810Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/decode-ways</loc>
<video:video>
<video:title>Decode Ways (LeetCode 91)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/decode-ways.jpg</video:thumbnail_loc>
<video:description>Count the ways a string of digits can decode into letters. Each digit can stand alone or pair with the one before it, like climbing stairs.</video:description>
<video:content_loc>https://leettube.dev/api/video/decode-ways.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-06T00:57:02.458Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T00:57:02.458Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/palindromic-substrings</loc>
<video:video>
<video:title>Palindromic Substrings (LeetCode 647)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/palindromic-substrings.jpg</video:thumbnail_loc>
<video:description>Count every palindrome hiding in a string. Pick each centre, letter or gap, and expand outward while both ends match, one count per step.</video:description>
<video:content_loc>https://leettube.dev/api/video/palindromic-substrings.mp4</video:content_loc>
<video:duration>110</video:duration>
<video:publication_date>2026-10-06T01:45:29.218Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T01:45:29.218Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/unique-paths</loc>
<video:video>
<video:title>Unique Paths (LeetCode 62)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/unique-paths.jpg</video:thumbnail_loc>
<video:description>Count a robot's routes across a grid moving only right or down. Each cell's count is the cell above plus the cell to the left.</video:description>
<video:content_loc>https://leettube.dev/api/video/unique-paths.mp4</video:content_loc>
<video:duration>97</video:duration>
<video:publication_date>2026-10-05T21:56:20.806Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:20.806Z</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-05T21:56:06.054Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:06.054Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/perfect-squares</loc>
<video:video>
<video:title>Perfect Squares (LeetCode 279)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/perfect-squares.jpg</video:thumbnail_loc>
<video:description>Fewest squares that sum to n: build a table up from zero, trying every square that fits. It's Coin Change with squares as coins.</video:description>
<video:content_loc>https://leettube.dev/api/video/perfect-squares.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-06T11:17:16.065Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T11:17:16.065Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/partition-equal-subset-sum</loc>
<video:video>
<video:title>Partition Equal Subset Sum (LeetCode 416)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/partition-equal-subset-sum.jpg</video:thumbnail_loc>
<video:description>Split the numbers into two equal-sum halves. Track which sums up to half the total are reachable, adding one number at a time, right to left.</video:description>
<video:content_loc>https://leettube.dev/api/video/partition-equal-subset-sum.mp4</video:content_loc>
<video:duration>101</video:duration>
<video:publication_date>2026-10-05T21:56:16.777Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:16.777Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/word-break</loc>
<video:video>
<video:title>Word Break (LeetCode 139)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/word-break.jpg</video:thumbnail_loc>
<video:description>Can a string be split into dictionary words? Mark each position you can reach, building on earlier marks, until you reach the end.</video:description>
<video:content_loc>https://leettube.dev/api/video/word-break.mp4</video:content_loc>
<video:duration>97</video:duration>
<video:publication_date>2026-10-05T21:56:21.581Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:21.581Z</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-05T21:56:12.881Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:12.881Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/longest-common-subsequence</loc>
<video:video>
<video:title>Longest Common Subsequence (LeetCode 1143)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/longest-common-subsequence.jpg</video:thumbnail_loc>
<video:description>Find the longest sequence two strings share in order. Fill a grid: matching letters extend the diagonal, otherwise take the better neighbour.</video:description>
<video:content_loc>https://leettube.dev/api/video/longest-common-subsequence.mp4</video:content_loc>
<video:duration>103</video:duration>
<video:publication_date>2026-10-05T21:56:12.898Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:12.898Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/distinct-subsequences</loc>
<video:video>
<video:title>Distinct Subsequences (LeetCode 115)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/distinct-subsequences.jpg</video:thumbnail_loc>
<video:description>Count the ways to pick letters of s, in order, that spell t: each letter is skipped or used, and a table adds up both choices.</video:description>
<video:content_loc>https://leettube.dev/api/video/distinct-subsequences.mp4</video:content_loc>
<video:duration>94</video:duration>
<video:publication_date>2026-10-06T11:24:49.031Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T11:24:49.031Z</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-05T21:56:07.692Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:07.692Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/regular-expression-matching</loc>
<video:video>
<video:title>Regular Expression Matching (LeetCode 10)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/regular-expression-matching.jpg</video:thumbnail_loc>
<video:description>Match a string against a pattern with . and *. A grid of smaller answers decides each cell: a star can match zero copies or eat one more character.</video:description>
<video:content_loc>https://leettube.dev/api/video/regular-expression-matching.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-06T05:26:56.917Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T05:26:56.917Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/longest-valid-parentheses</loc>
<video:video>
<video:title>Longest Valid Parentheses (LeetCode 32)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/longest-valid-parentheses.jpg</video:thumbnail_loc>
<video:description>Find the longest well-formed run of brackets. Each ) extends the valid run ending just before its matching (, so one pass of stored lengths works.</video:description>
<video:content_loc>https://leettube.dev/api/video/longest-valid-parentheses.mp4</video:content_loc>
<video:duration>95</video:duration>
<video:publication_date>2026-10-06T09:30:24.867Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T09:30:24.867Z</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-05T21:56:10.495Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:10.495Z</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-05T21:56:16.303Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:16.303Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/number-of-provinces</loc>
<video:video>
<video:title>Number of Provinces (LeetCode 547)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/number-of-provinces.jpg</video:thumbnail_loc>
<video:description>Count groups of connected cities: pick an unvisited city, flood its whole province with a search, and count how many floods it takes.</video:description>
<video:content_loc>https://leettube.dev/api/video/number-of-provinces.mp4</video:content_loc>
<video:duration>94</video:duration>
<video:publication_date>2026-10-06T14:34:30.620Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T14:34:30.620Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/rotting-oranges</loc>
<video:video>
<video:title>Rotting Oranges (LeetCode 994)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/rotting-oranges.jpg</video:thumbnail_loc>
<video:description>How many minutes until every orange rots? Start a breadth-first search from all the rotten ones at once, one ring per minute.</video:description>
<video:content_loc>https://leettube.dev/api/video/rotting-oranges.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-05T21:56:18.940Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:18.940Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/pacific-atlantic-water-flow</loc>
<video:video>
<video:title>Pacific Atlantic Water Flow (LeetCode 417)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/pacific-atlantic-water-flow.jpg</video:thumbnail_loc>
<video:description>Which cells drain to both oceans? Flip the flow: flood uphill from each coastline, then keep the cells both tides reach.</video:description>
<video:content_loc>https://leettube.dev/api/video/pacific-atlantic-water-flow.mp4</video:content_loc>
<video:duration>93</video:duration>
<video:publication_date>2026-10-05T21:56:16.249Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:16.249Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/surrounded-regions</loc>
<video:video>
<video:title>Surrounded Regions (LeetCode 130)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/surrounded-regions.jpg</video:thumbnail_loc>
<video:description>Capture every region of O cells walled in by X. Flood fill from the border to mark the O cells that escape; the rest get captured.</video:description>
<video:content_loc>https://leettube.dev/api/video/surrounded-regions.mp4</video:content_loc>
<video:duration>96</video:duration>
<video:publication_date>2026-10-06T01:16:23.195Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T01:16:23.195Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/longest-increasing-path-in-a-matrix</loc>
<video:video>
<video:title>Longest Increasing Path in a Matrix (LeetCode 329)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/longest-increasing-path-in-a-matrix.jpg</video:thumbnail_loc>
<video:description>Find the longest strictly rising path in a grid. Depth-first search from each cell, and remember every answer so no cell is ever solved twice.</video:description>
<video:content_loc>https://leettube.dev/api/video/longest-increasing-path-in-a-matrix.mp4</video:content_loc>
<video:duration>106</video:duration>
<video:publication_date>2026-10-06T06:26:47.823Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T06:26:47.823Z</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-05T21:56:05.675Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:05.675Z</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-05T21:56:06.827Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:06.827Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/course-schedule-ii</loc>
<video:video>
<video:title>Course Schedule II (LeetCode 210)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/course-schedule-ii.jpg</video:thumbnail_loc>
<video:description>Return a valid order to take every course. Count each course's prerequisites, start with the ones at zero, and unlock the rest as you go.</video:description>
<video:content_loc>https://leettube.dev/api/video/course-schedule-ii.mp4</video:content_loc>
<video:duration>102</video:duration>
<video:publication_date>2026-10-06T09:07:12.819Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T09:07:12.819Z</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-05T21:56:15.480Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:15.480Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/cheapest-flights-within-k-stops</loc>
<video:video>
<video:title>Cheapest Flights Within K Stops (LeetCode 787)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/cheapest-flights-within-k-stops.jpg</video:thumbnail_loc>
<video:description>Find the cheapest fare with at most k stops. Relax every flight once per allowed hop, Bellman-Ford style, keeping last round's prices.</video:description>
<video:content_loc>https://leettube.dev/api/video/cheapest-flights-within-k-stops.mp4</video:content_loc>
<video:duration>106</video:duration>
<video:publication_date>2026-10-05T21:56:05.411Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:05.411Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/swim-in-rising-water</loc>
<video:video>
<video:title>Swim in Rising Water (LeetCode 778)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/swim-in-rising-water.jpg</video:thumbnail_loc>
<video:description>Water rises one unit a minute; when can you swim from corner to corner? Dijkstra with a min-heap keyed on the tallest cell along the path.</video:description>
<video:content_loc>https://leettube.dev/api/video/swim-in-rising-water.mp4</video:content_loc>
<video:duration>92</video:duration>
<video:publication_date>2026-10-06T10:30:27.757Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T10:30:27.757Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/reconstruct-itinerary</loc>
<video:video>
<video:title>Reconstruct Itinerary (LeetCode 332)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/reconstruct-itinerary.jpg</video:thumbnail_loc>
<video:description>Use every plane ticket once, starting at JFK, in alphabetical order. Depth-first search, then add each airport once its tickets run out.</video:description>
<video:content_loc>https://leettube.dev/api/video/reconstruct-itinerary.mp4</video:content_loc>
<video:duration>108</video:duration>
<video:publication_date>2026-10-06T01:22:19.686Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T01:22:19.686Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/redundant-connection</loc>
<video:video>
<video:title>Redundant Connection (LeetCode 684)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/redundant-connection.jpg</video:thumbnail_loc>
<video:description>A tree got one extra edge that closes a loop. Join nodes with union-find; the first edge whose ends already share a root is the extra one.</video:description>
<video:content_loc>https://leettube.dev/api/video/redundant-connection.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-05T21:56:17.548Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:17.548Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/critical-connections-in-a-network</loc>
<video:video>
<video:title>Critical Connections in a Network (LeetCode 1192)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/critical-connections-in-a-network.jpg</video:thumbnail_loc>
<video:description>Find every link whose loss splits a network: one DFS stamps discovery times, carries low links up, and cuts where a child can't reach back.</video:description>
<video:content_loc>https://leettube.dev/api/video/critical-connections-in-a-network.mp4</video:content_loc>
<video:duration>94</video:duration>
<video:publication_date>2026-10-06T12:25:25.475Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T12:25:25.475Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/min-cost-to-connect-all-points</loc>
<video:video>
<video:title>Min Cost to Connect All Points (LeetCode 1584)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/min-cost-to-connect-all-points.jpg</video:thumbnail_loc>
<video:description>Join every point with the least total Manhattan distance. Grow a minimum spanning tree with Prim's algorithm, cheapest link first.</video:description>
<video:content_loc>https://leettube.dev/api/video/min-cost-to-connect-all-points.mp4</video:content_loc>
<video:duration>95</video:duration>
<video:publication_date>2026-10-06T04:02:19.815Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T04:02:19.815Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/word-ladder</loc>
<video:video>
<video:title>Word Ladder (LeetCode 127)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/word-ladder.jpg</video:thumbnail_loc>
<video:description>Change one letter at a time to reach the end word. Treat words as a graph and search breadth first, so the first hit is the shortest.</video:description>
<video:content_loc>https://leettube.dev/api/video/word-ladder.mp4</video:content_loc>
<video:duration>109</video:duration>
<video:publication_date>2026-10-05T21:56:22.413Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:22.413Z</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-05T21:56:10.275Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:10.275Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/can-place-flowers</loc>
<video:video>
<video:title>Can Place Flowers (LeetCode 605)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/can-place-flowers.jpg</video:thumbnail_loc>
<video:description>Plant a flower wherever both neighbours are empty, scanning left to right. Planting early never hurts, so stop as soon as n fit.</video:description>
<video:content_loc>https://leettube.dev/api/video/can-place-flowers.mp4</video:content_loc>
<video:duration>95</video:duration>
<video:publication_date>2026-10-06T11:19:14.005Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T11:19:14.005Z</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-05T21:56:11.461Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:11.461Z</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-05T21:56:11.616Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:11.616Z</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-05T21:56:08.456Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:08.456Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/minimum-domino-rotations-for-equal-row</loc>
<video:video>
<video:title>Minimum Domino Rotations For Equal Row (LeetCode 1007)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/minimum-domino-rotations-for-equal-row.jpg</video:thumbnail_loc>
<video:description>Fewest flips to make a domino row match: only the first domino's two values can work, so try each and keep the cheaper side.</video:description>
<video:content_loc>https://leettube.dev/api/video/minimum-domino-rotations-for-equal-row.mp4</video:content_loc>
<video:duration>98</video:duration>
<video:publication_date>2026-10-06T14:30:55.631Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T14:30:55.631Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/candy</loc>
<video:video>
<video:title>Candy (LeetCode 135)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/candy.jpg</video:thumbnail_loc>
<video:description>Hand out the fewest candies so higher-rated kids beat their neighbours. Sweep left to right, then right to left, keeping the larger count.</video:description>
<video:content_loc>https://leettube.dev/api/video/candy.mp4</video:content_loc>
<video:duration>101</video:duration>
<video:publication_date>2026-10-06T04:24:31.086Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T04:24:31.086Z</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-05T21:56:15.496Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:15.496Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/minimum-number-of-arrows-to-burst-balloons</loc>
<video:video>
<video:title>Minimum Number of Arrows to Burst Balloons (LeetCode 452)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/minimum-number-of-arrows-to-burst-balloons.jpg</video:thumbnail_loc>
<video:description>Sort balloons by where they end and shoot each arrow at the earliest end. It pops every balloon still overlapping it, so you need the fewest.</video:description>
<video:content_loc>https://leettube.dev/api/video/minimum-number-of-arrows-to-burst-balloons.mp4</video:content_loc>
<video:duration>97</video:duration>
<video:publication_date>2026-10-06T06:28:53.896Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T06:28:53.896Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/partition-labels</loc>
<video:video>
<video:title>Partition Labels (LeetCode 763)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/partition-labels.jpg</video:thumbnail_loc>
<video:description>Cut a string into as many pieces as possible with no letter in two pieces. Track where each letter last appears, and cut when you reach it.</video:description>
<video:content_loc>https://leettube.dev/api/video/partition-labels.mp4</video:content_loc>
<video:duration>92</video:duration>
<video:publication_date>2026-10-05T21:56:16.810Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:16.810Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/boats-to-save-people</loc>
<video:video>
<video:title>Boats to Save People (LeetCode 881)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/boats-to-save-people.jpg</video:thumbnail_loc>
<video:description>Each boat holds two people under a weight limit. Sort, then pair the heaviest with the lightest when they fit; otherwise the heaviest rides alone.</video:description>
<video:content_loc>https://leettube.dev/api/video/boats-to-save-people.mp4</video:content_loc>
<video:duration>103</video:duration>
<video:publication_date>2026-10-06T09:15:10.809Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T09:15:10.809Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/remove-k-digits</loc>
<video:video>
<video:title>Remove K Digits (LeetCode 402)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/remove-k-digits.jpg</video:thumbnail_loc>
<video:description>Delete k digits to make the smallest number. Keep a rising stack and pop any bigger digit before a smaller one while deletions remain.</video:description>
<video:content_loc>https://leettube.dev/api/video/remove-k-digits.mp4</video:content_loc>
<video:duration>101</video:duration>
<video:publication_date>2026-10-06T09:34:21.358Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T09:34:21.358Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/two-city-scheduling</loc>
<video:video>
<video:title>Two City Scheduling (LeetCode 1029)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/two-city-scheduling.jpg</video:thumbnail_loc>
<video:description>Send 2n people to two cities at least cost: book everyone to B, sort by A minus B, and switch the cheapest half to A.</video:description>
<video:content_loc>https://leettube.dev/api/video/two-city-scheduling.mp4</video:content_loc>
<video:duration>96</video:duration>
<video:publication_date>2026-10-06T11:21:01.755Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T11:21:01.755Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/valid-parenthesis-string</loc>
<video:video>
<video:title>Valid Parenthesis String (LeetCode 678)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/valid-parenthesis-string.jpg</video:thumbnail_loc>
<video:description>Check brackets where each star can be open, close or nothing. Track the lowest and highest possible open count instead of choosing.</video:description>
<video:content_loc>https://leettube.dev/api/video/valid-parenthesis-string.mp4</video:content_loc>
<video:duration>103</video:duration>
<video:publication_date>2026-10-06T02:23:17.118Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T02:23:17.118Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/maximum-subarray</loc>
<video:video>
<video:title>Maximum Subarray (LeetCode 53)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/maximum-subarray.jpg</video:thumbnail_loc>
<video:description>Find the stretch of numbers with the biggest sum in one pass: carry a running total, and drop it the moment it goes negative.</video:description>
<video:content_loc>https://leettube.dev/api/video/maximum-subarray.mp4</video:content_loc>
<video:duration>105</video:duration>
<video:publication_date>2026-10-05T21:56:13.790Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:13.790Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/hand-of-straights</loc>
<video:video>
<video:title>Hand of Straights (LeetCode 846)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/hand-of-straights.jpg</video:thumbnail_loc>
<video:description>Split a hand of cards into runs of consecutive values. Always start a run at the smallest card left, since nothing else can come before it.</video:description>
<video:content_loc>https://leettube.dev/api/video/hand-of-straights.mp4</video:content_loc>
<video:duration>104</video:duration>
<video:publication_date>2026-10-05T21:56:08.761Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:08.761Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/task-scheduler</loc>
<video:video>
<video:title>Task Scheduler (LeetCode 621)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/task-scheduler.jpg</video:thumbnail_loc>
<video:description>Find the fewest slots to run every task with n idle gaps between repeats. The most frequent task sets a frame; the rest fill its gaps.</video:description>
<video:content_loc>https://leettube.dev/api/video/task-scheduler.mp4</video:content_loc>
<video:duration>104</video:duration>
<video:publication_date>2026-10-05T21:56:19.639Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:19.639Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/merge-triplets-to-form-target-triplet</loc>
<video:video>
<video:title>Merge Triplets to Form Target Triplet (LeetCode 1899)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/merge-triplets-to-form-target-triplet.jpg</video:thumbnail_loc>
<video:description>Can some triplets merge, by taking maxes, into a target? Skip any triplet that overshoots, then check the safe ones still reach every value.</video:description>
<video:content_loc>https://leettube.dev/api/video/merge-triplets-to-form-target-triplet.mp4</video:content_loc>
<video:duration>96</video:duration>
<video:publication_date>2026-10-06T00:51:14.601Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T00:51:14.601Z</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-05T21:56:09.858Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:09.858Z</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-05T21:56:18.688Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:18.688Z</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-05T21:56:15.837Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:15.837Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/hamming-distance</loc>
<video:video>
<video:title>Hamming Distance (LeetCode 461)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/hamming-distance.jpg</video:thumbnail_loc>
<video:description>Count the bit positions where two numbers differ: XOR marks every difference, then clear the lowest set bit until none are left.</video:description>
<video:content_loc>https://leettube.dev/api/video/hamming-distance.mp4</video:content_loc>
<video:duration>101</video:duration>
<video:publication_date>2026-10-06T12:23:39.381Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T12:23:39.381Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/counting-bits</loc>
<video:video>
<video:title>Counting Bits (LeetCode 338)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/counting-bits.jpg</video:thumbnail_loc>
<video:description>Count the ones in every number from 0 to n. Each answer is the count for i shifted right one bit, plus its last bit.</video:description>
<video:content_loc>https://leettube.dev/api/video/counting-bits.mp4</video:content_loc>
<video:duration>97</video:duration>
<video:publication_date>2026-10-05T21:56:06.778Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:06.778Z</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-05T21:56:18.965Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:18.965Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/spiral-matrix</loc>
<video:video>
<video:title>Spiral Matrix (LeetCode 54)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/spiral-matrix.jpg</video:thumbnail_loc>
<video:description>Read a grid in spiral order by walking four walls: across the top, down the right, back along the bottom, up the left, then shrink inward.</video:description>
<video:content_loc>https://leettube.dev/api/video/spiral-matrix.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-06T06:24:42.811Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T06:24:42.811Z</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-05T21:56:14.857Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:14.857Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/pow-x-n</loc>
<video:video>
<video:title>Pow(x, n) (LeetCode 50)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/pow-x-n.jpg</video:thumbnail_loc>
<video:description>Raise x to the power n in about log n steps: square the base and halve the exponent, setting aside one copy whenever it's odd.</video:description>
<video:content_loc>https://leettube.dev/api/video/pow-x-n.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-05T21:56:16.988Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:16.988Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/sqrtx</loc>
<video:video>
<video:title>Sqrt(x) (LeetCode 69)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/sqrtx.jpg</video:thumbnail_loc>
<video:description>Integer square root with no built-ins: binary search the answer, square the middle, and keep the largest value whose square still fits.</video:description>
<video:content_loc>https://leettube.dev/api/video/sqrtx.mp4</video:content_loc>
<video:duration>103</video:duration>
<video:publication_date>2026-10-06T15:17:18.326Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T15:17:18.326Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/reverse-bits</loc>
<video:video>
<video:title>Reverse Bits (LeetCode 190)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/reverse-bits.jpg</video:thumbnail_loc>
<video:description>Flip the order of the 32 bits in a number. Peel the last bit off the input and push it onto the result, 32 times, with shifts.</video:description>
<video:content_loc>https://leettube.dev/api/video/reverse-bits.mp4</video:content_loc>
<video:duration>96</video:duration>
<video:publication_date>2026-10-05T21:56:17.934Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:17.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/sum-of-two-integers</loc>
<video:video>
<video:title>Sum of Two Integers (LeetCode 371)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/sum-of-two-integers.jpg</video:thumbnail_loc>
<video:description>Add two numbers without plus or minus. XOR adds each column, AND shifted left is the carry, and you repeat until the carry is zero.</video:description>
<video:content_loc>https://leettube.dev/api/video/sum-of-two-integers.mp4</video:content_loc>
<video:duration>105</video:duration>
<video:publication_date>2026-10-05T21:56:20.042Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:20.042Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/reverse-integer</loc>
<video:video>
<video:title>Reverse Integer (LeetCode 7)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/reverse-integer.jpg</video:thumbnail_loc>
<video:description>Reverse the digits of a 32-bit integer. Pop the last digit, push it onto the result, and check for overflow before each push.</video:description>
<video:content_loc>https://leettube.dev/api/video/reverse-integer.mp4</video:content_loc>
<video:duration>107</video:duration>
<video:publication_date>2026-10-05T21:56:18.585Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:18.585Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/palindrome-number</loc>
<video:video>
<video:title>Palindrome Number (LeetCode 9)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/palindrome-number.jpg</video:thumbnail_loc>
<video:description>Is an integer a palindrome without turning it into a string? Peel digits off the end to rebuild the back half, and stop once it meets the front.</video:description>
<video:content_loc>https://leettube.dev/api/video/palindrome-number.mp4</video:content_loc>
<video:duration>102</video:duration>
<video:publication_date>2026-10-06T10:25:07.520Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T10:25:07.520Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/happy-number</loc>
<video:video>
<video:title>Happy Number (LeetCode 202)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/happy-number.jpg</video:thumbnail_loc>
<video:description>Keep replacing a number with the sum of its digits squared. Either it reaches one or loops, and slow and fast pointers spot the loop.</video:description>
<video:content_loc>https://leettube.dev/api/video/happy-number.mp4</video:content_loc>
<video:duration>107</video:duration>
<video:publication_date>2026-10-06T04:06:59.779Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T04:06:59.779Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/plus-one</loc>
<video:video>
<video:title>Plus One (LeetCode 66)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/plus-one.jpg</video:thumbnail_loc>
<video:description>Add one to a number stored as an array of digits. Start from the right, turn each 9 into 0 and carry, and grow the array if needed.</video:description>
<video:content_loc>https://leettube.dev/api/video/plus-one.mp4</video:content_loc>
<video:duration>96</video:duration>
<video:publication_date>2026-10-06T04:16:24.338Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T04:16:24.338Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/multiply-strings</loc>
<video:video>
<video:title>Multiply Strings (LeetCode 43)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/multiply-strings.jpg</video:thumbnail_loc>
<video:description>Multiply two huge numbers stored as strings, like on paper: each digit pair lands at position i + j + 1, then carry the overflow leftward.</video:description>
<video:content_loc>https://leettube.dev/api/video/multiply-strings.mp4</video:content_loc>
<video:duration>108</video:duration>
<video:publication_date>2026-10-06T09:09:21.779Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T09:09:21.779Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/bitwise-and-of-numbers-range</loc>
<video:video>
<video:title>Bitwise AND of Numbers Range (LeetCode 201)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/bitwise-and-of-numbers-range.jpg</video:thumbnail_loc>
<video:description>AND together every number from left to right. Only the shared leading bits survive, so shift both ends right until they match.</video:description>
<video:content_loc>https://leettube.dev/api/video/bitwise-and-of-numbers-range.mp4</video:content_loc>
<video:duration>99</video:duration>
<video:publication_date>2026-10-06T01:20:08.428Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T01:20:08.428Z</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-05T21:56:09.945Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:09.945Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/design-hashmap</loc>
<video:video>
<video:title>Design HashMap (LeetCode 706)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/design-hashmap.jpg</video:thumbnail_loc>
<video:description>Build a hash map with no built-in one: hash each key to a bucket, keep a short list there, and update or remove in place.</video:description>
<video:content_loc>https://leettube.dev/api/video/design-hashmap.mp4</video:content_loc>
<video:duration>98</video:duration>
<video:publication_date>2026-10-06T12:19:13.658Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T12:19:13.658Z</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-05T21:56:14.543Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:14.543Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/implement-queue-using-stacks</loc>
<video:video>
<video:title>Implement Queue using Stacks (LeetCode 232)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/implement-queue-using-stacks.jpg</video:thumbnail_loc>
<video:description>Build a first-in, first-out queue from two stacks: push onto one, and pour it into the other only when that runs dry. Each item moves once.</video:description>
<video:content_loc>https://leettube.dev/api/video/implement-queue-using-stacks.mp4</video:content_loc>
<video:duration>102</video:duration>
<video:publication_date>2026-10-06T06:21:04.615Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T06:21:04.615Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/design-circular-queue</loc>
<video:video>
<video:title>Design Circular Queue (LeetCode 622)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/design-circular-queue.jpg</video:thumbnail_loc>
<video:description>Build a fixed-size ring queue: keep a head index and a count, wrap every step with modulo, and each operation is constant time.</video:description>
<video:content_loc>https://leettube.dev/api/video/design-circular-queue.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-06T14:36:48.870Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T14:36:48.870Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/binary-search-tree-iterator</loc>
<video:video>
<video:title>Binary Search Tree Iterator (LeetCode 173)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/binary-search-tree-iterator.jpg</video:thumbnail_loc>
<video:description>Walk a BST in sorted order one call at a time. Keep a stack of the left spine; each next() pops a node and pushes its right child's left spine.</video:description>
<video:content_loc>https://leettube.dev/api/video/binary-search-tree-iterator.mp4</video:content_loc>
<video:duration>102</video:duration>
<video:publication_date>2026-10-06T10:23:09.629Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T10:23:09.629Z</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-05T21:56:13.713Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:13.713Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/lfu-cache</loc>
<video:video>
<video:title>LFU Cache (LeetCode 460)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/lfu-cache.jpg</video:thumbnail_loc>
<video:description>A cache that evicts the least frequently used key in O(1): a map from key to node, plus one list per use count and a pointer to the lowest count.</video:description>
<video:content_loc>https://leettube.dev/api/video/lfu-cache.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-06T09:13:12.228Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T09:13:12.228Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/insert-delete-getrandom</loc>
<video:video>
<video:title>Insert Delete GetRandom O(1) (LeetCode 380)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/insert-delete-getrandom.jpg</video:thumbnail_loc>
<video:description>A set with constant-time insert, remove and random pick. Keep values in a list and their positions in a map, and delete by swapping with the last.</video:description>
<video:content_loc>https://leettube.dev/api/video/insert-delete-getrandom.mp4</video:content_loc>
<video:duration>91</video:duration>
<video:publication_date>2026-10-05T21:56:09.791Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:09.791Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/design-add-and-search-words</loc>
<video:video>
<video:title>Add and Search Words (LeetCode 211)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/design-add-and-search-words.jpg</video:thumbnail_loc>
<video:description>Store words in a trie and search patterns where a dot matches any letter, branching into every child only when you meet a dot.</video:description>
<video:content_loc>https://leettube.dev/api/video/design-add-and-search-words.mp4</video:content_loc>
<video:duration>99</video:duration>
<video:publication_date>2026-10-05T21:56:07.710Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:07.710Z</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-05T21:56:08.111Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:08.111Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/time-based-key-value-store</loc>
<video:video>
<video:title>Time Based Key-Value Store (LeetCode 981)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/time-based-key-value-store.jpg</video:thumbnail_loc>
<video:description>Store values per key with timestamps, then fetch the latest value at or before a time. Times arrive sorted, so binary search them.</video:description>
<video:content_loc>https://leettube.dev/api/video/time-based-key-value-store.mp4</video:content_loc>
<video:duration>99</video:duration>
<video:publication_date>2026-10-05T21:56:20.189Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:20.189Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/merge-k-sorted-lists</loc>
<video:video>
<video:title>Merge k Sorted Lists (LeetCode 23)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/merge-k-sorted-lists.jpg</video:thumbnail_loc>
<video:description>Merge k sorted linked lists into one. The next node is always one of the k heads, so keep them in a min-heap and pop the smallest.</video:description>
<video:content_loc>https://leettube.dev/api/video/merge-k-sorted-lists.mp4</video:content_loc>
<video:duration>102</video:duration>
<video:publication_date>2026-10-05T21:56:14.220Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:14.220Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/design-twitter</loc>
<video:video>
<video:title>Design Twitter (LeetCode 355)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/design-twitter.jpg</video:thumbnail_loc>
<video:description>Build a tiny Twitter with post, follow and a news feed. Hash maps hold tweets and follows, and a max-heap merges the ten newest.</video:description>
<video:content_loc>https://leettube.dev/api/video/design-twitter.mp4</video:content_loc>
<video:duration>105</video:duration>
<video:publication_date>2026-10-05T21:56:07.447Z</video:publication_date>
</video:video>
<lastmod>2026-10-05T21:56:07.447Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/kth-largest-element-in-a-stream</loc>
<video:video>
<video:title>Kth Largest Element in a Stream (LeetCode 703)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/kth-largest-element-in-a-stream.jpg</video:thumbnail_loc>
<video:description>Track the kth largest number as new ones stream in. Keep only the top k in a min-heap, and its smallest member is always the answer.</video:description>
<video:content_loc>https://leettube.dev/api/video/kth-largest-element-in-a-stream.mp4</video:content_loc>
<video:duration>88</video:duration>
<video:publication_date>2026-10-06T00:31:05.663Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T00:31:05.663Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/last-stone-weight</loc>
<video:video>
<video:title>Last Stone Weight (LeetCode 1046)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/last-stone-weight.jpg</video:thumbnail_loc>
<video:description>Smash the two heaviest stones together until at most one is left. A max-heap hands you the two biggest every turn in log time.</video:description>
<video:content_loc>https://leettube.dev/api/video/last-stone-weight.mp4</video:content_loc>
<video:duration>101</video:duration>
<video:publication_date>2026-10-06T01:52:35.079Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T01:52:35.079Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/detect-squares</loc>
<video:video>
<video:title>Detect Squares (LeetCode 2013)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/detect-squares.jpg</video:thumbnail_loc>
<video:description>Count the axis-aligned squares a query point makes with stored points. Keep point counts in a hash map and scan for diagonal corners.</video:description>
<video:content_loc>https://leettube.dev/api/video/detect-squares.mp4</video:content_loc>
<video:duration>97</video:duration>
<video:publication_date>2026-10-06T04:00:04.002Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T04:00:04.002Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://leettube.dev/watch/k-closest-points-to-origin</loc>
<video:video>
<video:title>K Closest Points to Origin (LeetCode 973)</video:title>
<video:thumbnail_loc>https://leettube.dev/posters/k-closest-points-to-origin.jpg</video:thumbnail_loc>
<video:description>Find the k points nearest the origin. Keep a max-heap of k seats and bump whoever sits farthest, so the k closest are left at the end.</video:description>
<video:content_loc>https://leettube.dev/api/video/k-closest-points-to-origin.mp4</video:content_loc>
<video:duration>100</video:duration>
<video:publication_date>2026-10-06T01:14:26.611Z</video:publication_date>
</video:video>
<lastmod>2026-10-06T01:14:26.611Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
