<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>DSA Grind</title><description>A pattern-first data structures and algorithms reference: 22 patterns, each with a copy-paste Java template, and worked walkthroughs for the Blind 75 and beyond.</description><link>https://dsa-grind.pages.dev/</link><language>en</language><item><title>MAANG Prep — Sanjay Naik</title><link>https://dsa-grind.pages.dev/maang-prep/overview/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/maang-prep/overview/</guid><description>Target: SDE-II / L4 / E4 at Meta, Amazon, Apple, Netflix, Google (and Microsoft tier) Current profile: 3.5+ yrs, Jio Platform (ex-Karkinos Health)…</description><pubDate>Sun, 30 Aug 2026 07:17:55 GMT</pubDate><category>MAANG Interview Prep</category><category>overview</category></item><item><title>Senior Java DSA Master - Study Guide</title><link>https://dsa-grind.pages.dev/start-here/overview/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/start-here/overview/</guid><description>Knowing why you chose a Deque over a Stack or how HashMap resizing affects your O(n) time is what separates a Senior from a Junior candidate.</description><pubDate>Sun, 30 Aug 2026 07:17:11 GMT</pubDate><category>Start Here</category><category>overview</category></item><item><title>Algorithm Template Cheat Sheet — All 21 Patterns</title><link>https://dsa-grind.pages.dev/start-here/templates/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/start-here/templates/</guid><description>One page. Every skeleton. Each pattern&apos;s full template section (with knobs, rules, and gotchas) lives in NN-Pattern/pattern-guide.md under ## 0. The…</description><pubDate>Sun, 30 Aug 2026 07:16:39 GMT</pubDate><category>Start Here</category><category>note</category></item><item><title>Pattern 16: Graph Patterns (BFS / DFS / Topological Sort / Union-Find / Dijkstra)</title><link>https://dsa-grind.pages.dev/graph-patterns/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/graph-patterns/pattern-guide/</guid><description>Graphs have six algorithm templates (all spelled out in §3 below) but only one setup step — and that setup is where most interview time is actually lost…</description><pubDate>Sun, 30 Aug 2026 07:15:15 GMT</pubDate><category>Graph Patterns</category><category>guide</category></item><item><title>Pattern 18: Tries (Prefix Trees)</title><link>https://dsa-grind.pages.dev/tries/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/tries/pattern-guide/</guid><description>One node class, three methods. insert and search are the same 6-line walk; only the final check differs.</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Tries</category><category>guide</category></item><item><title>Pattern 19: Greedy</title><link>https://dsa-grind.pages.dev/greedy/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/greedy/pattern-guide/</guid><description>Greedy is almost always sort by the right key, then one linear sweep. Choosing the sort key is the problem; the sweep is four lines.</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Greedy</category><category>guide</category></item><item><title>Pattern 17: Union-Find (Disjoint Set Union — DSU)</title><link>https://dsa-grind.pages.dev/union-find/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/union-find/pattern-guide/</guid><description>One class. Memorise it verbatim — it&apos;s ~20 lines and it solves an entire category of graph problems that would otherwise need DFS plus bookkeeping.</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Union-Find (DSU)</category><category>guide</category></item><item><title>Pattern 13: Top &apos;K&apos; Elements</title><link>https://dsa-grind.pages.dev/top-k-elements/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/top-k-elements/pattern-guide/</guid><description>The counter-intuitive rule: for the k LARGEST, use a MIN-heap of size k. The top is the weakest survivor, so it is exactly the one to evict when something…</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Top &apos;K&apos; Elements</category><category>guide</category></item><item><title>Pattern 14: Dynamic Programming (Memoization vs. Tabulation)</title><link>https://dsa-grind.pages.dev/dynamic-programming/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/dynamic-programming/pattern-guide/</guid><description>Two skeletons — top-down memo and bottom-up table. Write the recurrence first, in English, before you touch either.</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Dynamic Programming</category><category>guide</category></item><item><title>Pattern 11: Backtracking / Subsets</title><link>https://dsa-grind.pages.dev/backtracking-subsets/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/backtracking-subsets/pattern-guide/</guid><description>Every backtracking problem is choose → explore → un-choose. The only thing that varies is the loop&apos;s start index and the pruning condition.</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Backtracking &amp; Subsets</category><category>guide</category></item><item><title>Pattern 12: Binary Search (Modified)</title><link>https://dsa-grind.pages.dev/binary-search/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/binary-search/pattern-guide/</guid><description>Three skeletons. Template B (find the boundary) is the one to memorise — it solves far more interview problems than the exact-match version, and it never…</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Binary Search (Modified)</category><category>guide</category></item><item><title>Pattern 08: BFS (Breadth-First Search)</title><link>https://dsa-grind.pages.dev/bfs/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/bfs/pattern-guide/</guid><description>One skeleton, three surfaces: tree, grid, generic graph. The line that makes it work is int size = queue.size(); — freeze it, or your levels bleed into each…</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>BFS</category><category>guide</category></item><item><title>Pattern 09: DFS (Depth-First Search)</title><link>https://dsa-grind.pages.dev/dfs/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/dfs/pattern-guide/</guid><description>DFS is one recursive shape reused four ways. Pick your traversal order (when you touch the node) and whether you return a value up or carry state down.</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>DFS</category><category>guide</category></item><item><title>Pattern 10: Two Heaps</title><link>https://dsa-grind.pages.dev/two-heaps/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/two-heaps/pattern-guide/</guid><description>A max-heap of the smaller half and a min-heap of the larger half, kept balanced. The two heap tops straddle the median, so the median is O(1).</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Two Heaps</category><category>guide</category></item><item><title>Pattern 05: Merge Intervals</title><link>https://dsa-grind.pages.dev/merge-intervals/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/merge-intervals/pattern-guide/</guid><description>Sort first, then a single linear sweep. Sort by start to merge; sort by end for greedy &quot;max non-overlapping&quot;; use a min-heap of end times for room/resource…</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Merge Intervals</category><category>guide</category></item><item><title>Pattern 06: Cyclic Sort</title><link>https://dsa-grind.pages.dev/cyclic-sort/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/cyclic-sort/pattern-guide/</guid><description>The trigger is narrow but unmistakable: n numbers drawn from the range 1..n (or 0..n-1), and the interviewer wants O(1) extra space. The array itself…</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Cyclic Sort</category><category>guide</category></item><item><title>Pattern 07: In-place Reversal of a Linked List</title><link>https://dsa-grind.pages.dev/linked-list-reversal/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/linked-list-reversal/pattern-guide/</guid><description>Two skeletons — reverse and dummy head — plus one rule: when a problem might delete or replace the head, allocate a dummy node and you delete an entire…</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Linked List Reversal</category><category>guide</category></item><item><title>Pattern 03: Hashing / Frequency Maps</title><link>https://dsa-grind.pages.dev/hashing-frequency-maps/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/hashing-frequency-maps/pattern-guide/</guid><description>Three skeletons cover nearly every hashing problem: count, seen-before, and prefix-sum + map.</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Hashing &amp; Frequency Maps</category><category>guide</category></item><item><title>Pattern 04: Fast &amp; Slow Pointers (Floyd&apos;s Cycle Detection)</title><link>https://dsa-grind.pages.dev/fast-and-slow-pointers/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/fast-and-slow-pointers/pattern-guide/</guid><description>One skeleton, three questions: is there a cycle, where does it start, what&apos;s the middle.</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Fast &amp; Slow Pointers</category><category>guide</category></item><item><title>Pattern 02: Sliding Window</title><link>https://dsa-grind.pages.dev/sliding-window/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/sliding-window/pattern-guide/</guid><description>There are exactly two window templates. Decide first: is the window size fixed or variable? Everything else follows.</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Sliding Window</category><category>guide</category></item><item><title>Pattern 01: Two Pointers (Opposite Ends)</title><link>https://dsa-grind.pages.dev/two-pointers/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/two-pointers/pattern-guide/</guid><description>Memorise one skeleton. Every opposite-ends problem is this loop with the if/else body swapped.</description><pubDate>Sun, 30 Aug 2026 07:14:34 GMT</pubDate><category>Two Pointers</category><category>guide</category></item><item><title>Design Circular Queue (LC 622)</title><link>https://dsa-grind.pages.dev/stacks-and-queues/lc-622-design-circular-queue/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/stacks-and-queues/lc-622-design-circular-queue/</guid><description>Wrap indices with % capacity to reuse freed slots. Track an explicit count so &quot;full&quot; and &quot;empty&quot; are never ambiguous.</description><pubDate>Sun, 30 Aug 2026 07:09:28 GMT</pubDate><category>Stacks &amp; Queues</category><category>problem</category></item><item><title>Rotting Oranges (LC 994)</title><link>https://dsa-grind.pages.dev/stacks-and-queues/lc-994-rotting-oranges/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/stacks-and-queues/lc-994-rotting-oranges/</guid><description>Everything rots simultaneously, so seed the queue with all rotten cells before the loop starts. BFS levels then equal elapsed minutes.</description><pubDate>Sun, 30 Aug 2026 07:09:28 GMT</pubDate><category>Stacks &amp; Queues</category><category>problem</category></item><item><title>Sliding Window Maximum (LC 239)</title><link>https://dsa-grind.pages.dev/stacks-and-queues/lc-239-sliding-window-maximum/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/stacks-and-queues/lc-239-sliding-window-maximum/</guid><description>An element that is smaller than a later element can never be the window max again — evict it immediately. What survives is a decreasing deque of indices…</description><pubDate>Sun, 30 Aug 2026 07:07:47 GMT</pubDate><category>Stacks &amp; Queues</category><category>problem</category></item><item><title>Implement Queue using Stacks (LC 232)</title><link>https://dsa-grind.pages.dev/stacks-and-queues/lc-232-implement-queue-using-stacks/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/stacks-and-queues/lc-232-implement-queue-using-stacks/</guid><description>Reversing a stack into a second stack turns LIFO into FIFO. Only refill when the output stack is empty — that is what makes it amortised O(1) instead of O(n).</description><pubDate>Sun, 30 Aug 2026 07:06:57 GMT</pubDate><category>Stacks &amp; Queues</category><category>problem</category></item><item><title>Valid Parentheses (LC 20)</title><link>https://dsa-grind.pages.dev/stacks-and-queues/lc-20-valid-parentheses/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/stacks-and-queues/lc-20-valid-parentheses/</guid><description>The most recently opened bracket must be the first one closed — that is LIFO, so a stack does the matching for free.</description><pubDate>Sun, 30 Aug 2026 07:06:12 GMT</pubDate><category>Stacks &amp; Queues</category><category>problem</category></item><item><title>Largest Rectangle in Histogram (LC 84)</title><link>https://dsa-grind.pages.dev/monotonic-stack/lc-84-largest-rectangle-in-histogram/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/monotonic-stack/lc-84-largest-rectangle-in-histogram/</guid><description>For each bar, the widest rectangle of that bar&apos;s height is bounded by the first strictly smaller bar on each side. A monotonic increasing stack finds both…</description><pubDate>Sun, 30 Aug 2026 07:05:22 GMT</pubDate><category>Monotonic Stack</category><category>problem</category></item><item><title>Next Greater Element I (LC 496)</title><link>https://dsa-grind.pages.dev/monotonic-stack/lc-496-next-greater-element-i/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/monotonic-stack/lc-496-next-greater-element-i/</guid><description>Precompute every next-greater answer for nums2 in one O(n) pass, store it in a map, then answer each nums1 query in O(1).</description><pubDate>Sun, 30 Aug 2026 07:05:15 GMT</pubDate><category>Monotonic Stack</category><category>problem</category></item><item><title>Daily Temperatures (LC 739)</title><link>https://dsa-grind.pages.dev/monotonic-stack/lc-739-daily-temperatures/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/monotonic-stack/lc-739-daily-temperatures/</guid><description>Keep a stack of indices whose answer is still unknown, in decreasing temperature order. A warmer day resolves several of them at once.</description><pubDate>Sun, 30 Aug 2026 07:04:06 GMT</pubDate><category>Monotonic Stack</category><category>problem</category></item><item><title>Pattern 21: Stacks &amp; Queues (incl. Monotonic Deque, Design &amp; Simulation)</title><link>https://dsa-grind.pages.dev/stacks-and-queues/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/stacks-and-queues/pattern-guide/</guid><description>One-line trigger: &quot;Process in LIFO order (stack), FIFO order (queue), or maintain a running answer over a sliding window (deque).&quot;</description><pubDate>Sun, 30 Aug 2026 07:03:18 GMT</pubDate><category>Stacks &amp; Queues</category><category>guide</category></item><item><title>Pattern 20: Monotonic Stack</title><link>https://dsa-grind.pages.dev/monotonic-stack/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/monotonic-stack/pattern-guide/</guid><description>One-line trigger: &quot;For each element, find the next / previous element that is greater / smaller.&quot;</description><pubDate>Sun, 30 Aug 2026 07:01:42 GMT</pubDate><category>Monotonic Stack</category><category>guide</category></item><item><title>Step-by-Step Study Plan — 20 Weeks to MAANG-Ready</title><link>https://dsa-grind.pages.dev/maang-prep/study-plan/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/maang-prep/study-plan/</guid><description>Tailored for: Sanjay Naik — 3.5 yrs Java backend, microservices + GenAI healthcare exp Goal: Senior SWE / SDE-II / L4 / E4 offer Start: 2026-05-20 → Target…</description><pubDate>Sun, 30 Aug 2026 07:00:27 GMT</pubDate><category>MAANG Interview Prep</category><category>note</category></item><item><title>Valid Palindrome — runnable Java</title><link>https://dsa-grind.pages.dev/two-pointers/valid-palindrome/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/two-pointers/valid-palindrome/</guid><description>Runnable Java file — no imports, no Maven needed. Save it and run java ValidPalindrome.java.</description><pubDate>Thu, 25 Jun 2026 20:41:08 GMT</pubDate><category>Two Pointers</category><category>code</category></item><item><title>DSA Study — References &amp; Resources</title><link>https://dsa-grind.pages.dev/start-here/references/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/start-here/references/</guid><description>All external links, articles, and resources used to build this DSA Study directory.</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Start Here</category><category>note</category></item><item><title>Pattern 15: Blind 75 — The Essential Interview Problem Set</title><link>https://dsa-grind.pages.dev/blind-75/pattern-guide/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/pattern-guide/</guid><description>The Blind 75 is a curated list of 75 LeetCode problems created by Yangshun Tay in 2018. It covers the most frequently asked coding interview questions…</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>guide</category></item><item><title>Clone Graph (LC 133)</title><link>https://dsa-grind.pages.dev/blind-75/graph/lc-133-clone-graph/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/graph/lc-133-clone-graph/</guid><description>Map each original node to its clone once, then wire neighbors by looking up clones in that map so you never duplicate nodes or get stuck in cycles.</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Implement Trie (Prefix Tree) (LC 208)</title><link>https://dsa-grind.pages.dev/blind-75/trie/lc-208-implement-trie/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/trie/lc-208-implement-trie/</guid><description>Each node holds links to 26 (or alphabet-sized) children and an isEnd flag; insert walks/creates edges; search/startsWith follow edges and check termination.</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Longest Substring Without Repeating Characters (LC 3)</title><link>https://dsa-grind.pages.dev/blind-75/string/lc-3-longest-substring-without-repeating/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/string/lc-3-longest-substring-without-repeating/</guid><description>For each right, move left just past the previous index of s[right] so the window never holds duplicates.</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Maximum Depth of Binary Tree (LC 104)</title><link>https://dsa-grind.pages.dev/blind-75/tree/lc-104-maximum-depth-of-binary-tree/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/tree/lc-104-maximum-depth-of-binary-tree/</guid><description>The depth of a node is 1 + max(depth of left subtree, depth of right subtree); the base case is an empty subtree (depth 0).</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Merge Intervals (LC 56)</title><link>https://dsa-grind.pages.dev/blind-75/interval/lc-56-merge-intervals/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/interval/lc-56-merge-intervals/</guid><description>After sorting by start, each interval either extends the current merged block or starts a new one.</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Merge k Sorted Lists (LC 23)</title><link>https://dsa-grind.pages.dev/blind-75/heap/lc-23-merge-k-sorted-lists/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/heap/lc-23-merge-k-sorted-lists/</guid><description>Always pick the smallest current head among k lists using a min-heap ordered by node value (tie-break by list id).</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Set Matrix Zeroes (LC 73)</title><link>https://dsa-grind.pages.dev/blind-75/matrix/lc-73-set-matrix-zeroes/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/matrix/lc-73-set-matrix-zeroes/</guid><description>If matrix[i][j] == 0, row i and column j must become zero; store which rows/cols need clearing using O(1) extra space by repurposing the first row and first…</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Two Sum (LC 1)</title><link>https://dsa-grind.pages.dev/blind-75/array/lc-1-two-sum/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/array/lc-1-two-sum/</guid><description>Store each value’s index as you walk the array; the partner you need is target - current, which you can look up in O(1) with a map.</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Word Break (LC 139)</title><link>https://dsa-grind.pages.dev/blind-75/dynamic-programming/lc-139-word-break/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/dynamic-programming/lc-139-word-break/</guid><description>A string is breakable if some prefix is a dictionary word and the remainder is also breakable—so you reuse answers for suffixes.</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Binary Tree Maximum Path Sum (LC 124)</title><link>https://dsa-grind.pages.dev/blind-75/tree/lc-124-binary-tree-maximum-path-sum/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/tree/lc-124-binary-tree-maximum-path-sum/</guid><description>At each node, the best path through that node uses the node plus at most one best “chain” from left and one from right; return to parent only a single…</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Combination Sum IV (LC 377)</title><link>https://dsa-grind.pages.dev/blind-75/dynamic-programming/lc-377-combination-sum-iv/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/dynamic-programming/lc-377-combination-sum-iv/</guid><description>Distinct sequences count permutations: ways to reach sum t equals the sum over coins of ways to reach t - coin.</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Course Schedule (LC 207)</title><link>https://dsa-grind.pages.dev/blind-75/graph/lc-207-course-schedule/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/graph/lc-207-course-schedule/</guid><description>If you can order all courses respecting prerequisites, the prerequisite graph is a DAG; if there is a cycle, some course depends on itself indirectly and…</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Design Add and Search Words Data Structure (LC 211)</title><link>https://dsa-grind.pages.dev/blind-75/trie/lc-211-add-and-search-word/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/trie/lc-211-add-and-search-word/</guid><description>. matches any single letter — at a . node, try all non-null children recursively; otherwise follow the single matching edge.</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Longest Repeating Character Replacement (LC 424)</title><link>https://dsa-grind.pages.dev/blind-75/string/lc-424-longest-repeating-character-replacement/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/string/lc-424-longest-repeating-character-replacement/</guid><description>A window is valid if (window length) - (count of most frequent char) &lt;= k — you only need to replace the “minority” characters.</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item><item><title>Non-overlapping Intervals (LC 435)</title><link>https://dsa-grind.pages.dev/blind-75/interval/lc-435-non-overlapping-intervals/</link><guid isPermaLink="true">https://dsa-grind.pages.dev/blind-75/interval/lc-435-non-overlapping-intervals/</guid><description>To fit maximum non-overlapping intervals, always keep the interval that ends earliest—it leaves the most room for the future.</description><pubDate>Fri, 12 Jun 2026 07:40:30 GMT</pubDate><category>Blind 75</category><category>problem</category></item></channel></rss>