---
title: "Neetcode and Blind Sheet"
description: "Curated list of 150+ LeetCode problems organized by pattern. Built for systematic, high retention interview preparation. Track your progress, internalize patterns, and crush coding interviews.…"
url: https://sohamdev.com/blog/neetcode-and-blind-sheet/
date: 2026-08-30
updated: 2026-08-30
author: "Soham Roy"
topic: "Engineering"
tags: ["firebase", "faang", "DSA", "Data Algorithms", "Interview"]
reading_minutes: 19
word_count: 4236
canonical: https://sohamdev.com/blog/neetcode-and-blind-sheet/
license: "All rights reserved. Quotation with attribution and a link is welcome."
---

# Neetcode and Blind Sheet

# 🧠 NeetCode 150 + Blind 75 — Interview Prep 2026

> **Curated list of 150+ LeetCode problems** organized by pattern. Built for systematic, high-retention interview preparation. Track your progress, internalize patterns, and crush coding interviews.

---

## 📌 Quick Navigation

| Section | Problems | Blind 75 |
|---------|----------|----------|
| [Arrays & Hashing](#-arrays--hashing) | 9 | 7 |
| [Two Pointers](#-two-pointers) | 5 | 4 |
| [Sliding Window](#-sliding-window) | 6 | 4 |
| [Stack](#-stack) | 7 | 1 |
| [Binary Search](#-binary-search) | 7 | 2 |
| [Linked List](#-linked-list) | 11 | 6 |
| [Trees](#-trees) | 15 | 11 |
| [Tries](#-tries) | 3 | 3 |
| [Backtracking](#-backtracking) | 9 | 3 |
| [Heap / Priority Queue](#-heap--priority-queue) | 7 | 1 |
| [Graphs](#-graphs) | 13 | 6 |
| [1-D DP](#-1-d-dp) | 12 | 10 |
| [2-D DP](#-2-d-dp) | 11 | 2 |
| [Intervals](#-intervals) | 6 | 5 |
| [Greedy](#-greedy) | 8 | 3 |
| [Advanced Graphs](#-advanced-graphs) | 6 | 1 |
| [Bit Manipulation](#-bit-manipulation) | 7 | 6 |
| [Math & Geometry](#-math--geometry) | 8 | 3 |

---

## 📚 Resources

### Primary
| Resource | Link |
|----------|------|
| 🚀 NeetCode Practice | [neetcode.io/practice](https://neetcode.io/practice) |
| 🗺️ NeetCode Roadmap | [neetcode.io/roadmap](https://neetcode.io/roadmap) |
| 📹 NeetCode YouTube | [Blind 75 Playlist](https://www.youtube.com/playlist?list=PLot-Xpze53ldVwtstag2TL4HQhAnC8ATf) |
| 🥇 LeetCode Top 150 | [Study Plan](https://leetcode.com/studyplan/top-interview-150/) |
| 🧩 Leetcode Patterns | [seanprashad.com](https://seanprashad.com/leetcode-patterns/) |
| 🏫 Grind 75 | [techinterviewhandbook.org/grind75](https://www.techinterviewhandbook.org/grind75) |
| 📋 Blind 75 Original Post | [teamblind.com](https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-75-LeetCode-Questions-to-Save-Your-Time-OaM1orEU) |
---

## 🗂️ Legend

| Symbol | Meaning |
|:------:|---------|
| ⭐ | Part of original Blind 75 list |
| ✅ | Completed |
| 🔁 | Needs review |
| 💡 | Key pattern — high interview frequency |
| 🟢 | Easy |
| 🟡 | Medium |
| 🔴 | Hard |

---

## 📋 Problem Lists

---

### 🔢 Arrays & Hashing

**Prerequisites:** Dynamic Arrays · Hash Usage · Hash Implementation · Prefix Sums

**Key Pattern:** Use a hash map/set to reduce time from O(n²) → O(n). Think: "What complement / count / group do I need to look up instantly?"

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 217 | [Contains Duplicate](https://leetcode.com/problems/contains-duplicate/) ⭐ 💡 | 🟢 | HashSet | [▶](https://www.youtube.com/watch?v=3OamzN90kPg) |
| ☐ 242 | [Valid Anagram](https://leetcode.com/problems/valid-anagram/) ⭐ 💡 | 🟢 | HashMap / Sort | [▶](https://www.youtube.com/watch?v=9UtInBqnCgA) |
| ☐ 001 | [Two Sum](https://leetcode.com/problems/two-sum/) ⭐ 💡 | 🟢 | HashMap | [▶](https://www.youtube.com/watch?v=KLlXCFG5TnA) |
| ☐ 049 | [Group Anagrams](https://leetcode.com/problems/group-anagrams/) ⭐ | 🟡 | HashMap, Sort | [▶](https://www.youtube.com/watch?v=vzdNOK2oB2E) |
| ☐ 347 | [Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/) ⭐ 💡 | 🟡 | Bucket Sort / Heap | [▶](https://www.youtube.com/watch?v=YPTqKIgVk-k) |
| ☐ 271 | [Encode and Decode Strings](https://neetcode.io/problems/string-encode-and-decode) ⭐ | 🟡 | String Design | [▶](https://www.youtube.com/watch?v=B1k_sxOSgv8) |
| ☐ 238 | [Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/) ⭐ 💡 | 🟡 | Prefix/Suffix | [▶](https://www.youtube.com/watch?v=bNvIQI2wAjk) |
| ☐ 036 | [Valid Sudoku](https://leetcode.com/problems/valid-sudoku/) | 🟡 | HashSet, Matrix | [▶](https://www.youtube.com/watch?v=TjFXEUCMqI8) |
| ☐ 128 | [Longest Consecutive Sequence](https://leetcode.com/problems/longest-consecutive-sequence/) ⭐ 💡 | 🟡 | HashSet | [▶](https://www.youtube.com/watch?v=P6RZZMu_maU) |

---

### 👉 Two Pointers

**Prerequisites:** Two Pointers technique

**Key Pattern:** Start pointers at both ends (or at two positions). Move based on a condition. Works on sorted arrays and strings.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 125 | [Valid Palindrome](https://leetcode.com/problems/valid-palindrome/) ⭐ 💡 | 🟢 | Two Pointers | [▶](https://www.youtube.com/watch?v=jJXJ16kPFWg) |
| ☐ 167 | [Two Sum II - Input Array Is Sorted](https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/) | 🟡 | Two Pointers | [▶](https://www.youtube.com/watch?v=cQ1Oz4ckceM) |
| ☐ 015 | [3Sum](https://leetcode.com/problems/3sum/) ⭐ 💡 | 🟡 | Sort + Two Pointers | [▶](https://www.youtube.com/watch?v=jzZsG8n2R9A) |
| ☐ 011 | [Container With Most Water](https://leetcode.com/problems/container-with-most-water/) ⭐ | 🟡 | Two Pointers, Greedy | [▶](https://www.youtube.com/watch?v=UuiTKBwPgAo) |
| ☐ 042 | [Trapping Rain Water](https://leetcode.com/problems/trapping-rain-water/) 💡 | 🔴 | Two Pointers / Stack | [▶](https://www.youtube.com/watch?v=ZI2z5pq0TqA) |

---

### 🪟 Sliding Window

**Prerequisites:** Fixed Size Window · Variable Size Window

**Key Pattern:** Expand right pointer, shrink left when constraint violated. Track window state with a hashmap or counter. O(n) over O(n²).

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 121 | [Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/) ⭐ 💡 | 🟢 | Sliding Window, Min Track | [▶](https://www.youtube.com/watch?v=1pkOgXD63yU) |
| ☐ 003 | [Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/) ⭐ 💡 | 🟡 | Sliding Window, HashSet | [▶](https://www.youtube.com/watch?v=wiGpQwVHdE0) |
| ☐ 424 | [Longest Repeating Character Replacement](https://leetcode.com/problems/longest-repeating-character-replacement/) ⭐ | 🟡 | Sliding Window | [▶](https://www.youtube.com/watch?v=gqXU1UyA8pk) |
| ☐ 567 | [Permutation in String](https://leetcode.com/problems/permutation-in-string/) | 🟡 | Fixed Window, Frequency | [▶](https://www.youtube.com/watch?v=UbyhOgBN834) |
| ☐ 076 | [Minimum Window Substring](https://leetcode.com/problems/minimum-window-substring/) ⭐ 💡 | 🔴 | Sliding Window, HashMap | [▶](https://www.youtube.com/watch?v=jSto0O4AJbM) |
| ☐ 239 | [Sliding Window Maximum](https://leetcode.com/problems/sliding-window-maximum/) 💡 | 🔴 | Monotonic Deque | [▶](https://www.youtube.com/watch?v=DfljaUwZsOk) |

---

### 📚 Stack

**Prerequisites:** Stack data structure

**Key Pattern:** Think "last in, first out." Use a stack for: matching pairs, tracking previous states, monotonic sequences (next greater/smaller).

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 020 | [Valid Parentheses](https://leetcode.com/problems/valid-parentheses/) ⭐ 💡 | 🟢 | Stack, Matching | [▶](https://www.youtube.com/watch?v=WTzjTskDFMg) |
| ☐ 155 | [Min Stack](https://leetcode.com/problems/min-stack/) | 🟡 | Stack Design | [▶](https://www.youtube.com/watch?v=qkLl7nAwDPo) |
| ☐ 150 | [Evaluate Reverse Polish Notation](https://leetcode.com/problems/evaluate-reverse-polish-notation/) | 🟡 | Stack | [▶](https://www.youtube.com/watch?v=iu0082c4HDE) |
| ☐ 022 | [Generate Parentheses](https://leetcode.com/problems/generate-parentheses/) | 🟡 | Stack, Backtracking | [▶](https://www.youtube.com/watch?v=s9fokUqJ76A) |
| ☐ 739 | [Daily Temperatures](https://leetcode.com/problems/daily-temperatures/) 💡 | 🟡 | Monotonic Stack | [▶](https://www.youtube.com/watch?v=cTBiBSnjO3c) |
| ☐ 853 | [Car Fleet](https://leetcode.com/problems/car-fleet/) | 🟡 | Monotonic Stack | [▶](https://www.youtube.com/watch?v=Pr6T-3yB9RM) |
| ☐ 084 | [Largest Rectangle in Histogram](https://leetcode.com/problems/largest-rectangle-in-histogram/) 💡 | 🔴 | Monotonic Stack | [▶](https://www.youtube.com/watch?v=zx5Sw9130L0) |

---

### 🔍 Binary Search

**Prerequisites:** Search Array · Search Range

**Key Pattern:** Any time you're searching over a sorted/monotonic space, think binary search. Template: `lo=0, hi=n-1, mid=(lo+hi)//2`, adjust bounds based on condition.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 704 | [Binary Search](https://leetcode.com/problems/binary-search/) | 🟢 | Binary Search | [▶](https://www.youtube.com/watch?v=s4DPM8ct1pI) |
| ☐ 074 | [Search a 2D Matrix](https://leetcode.com/problems/search-a-2d-matrix/) | 🟡 | Binary Search | [▶](https://www.youtube.com/watch?v=Ber2pi2C0j0) |
| ☐ 875 | [Koko Eating Bananas](https://leetcode.com/problems/koko-eating-bananas/) 💡 | 🟡 | Binary Search on Answer | [▶](https://www.youtube.com/watch?v=U2SozAs9RzA) |
| ☐ 153 | [Find Minimum in Rotated Sorted Array](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/) ⭐ 💡 | 🟡 | Binary Search | [▶](https://www.youtube.com/watch?v=nIVW4P8b1VA) |
| ☐ 033 | [Search in Rotated Sorted Array](https://leetcode.com/problems/search-in-rotated-sorted-array/) ⭐ 💡 | 🟡 | Binary Search | [▶](https://www.youtube.com/watch?v=U8XENwh8Oy8) |
| ☐ 981 | [Time Based Key-Value Store](https://leetcode.com/problems/time-based-key-value-store/) | 🟡 | Binary Search, Design | [▶](https://www.youtube.com/watch?v=fu2cD_6E8Hw) |
| ☐ 004 | [Median of Two Sorted Arrays](https://leetcode.com/problems/median-of-two-sorted-arrays/) | 🔴 | Binary Search, Partition | [▶](https://www.youtube.com/watch?v=q6IEA26hvXc) |

---

### 🔗 Linked List

**Prerequisites:** Singly Linked Lists · Doubly Linked Lists · Fast & Slow Pointers

**Key Pattern:** Use a dummy head node. For cycle/midpoint detection, use fast (2x) and slow (1x) pointers. Reverse by tracking prev/curr/next.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 206 | [Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/) ⭐ 💡 | 🟢 | Iterative / Recursive | [▶](https://www.youtube.com/watch?v=G0_I-ZF0S38) |
| ☐ 021 | [Merge Two Sorted Lists](https://leetcode.com/problems/merge-two-sorted-lists/) ⭐ 💡 | 🟢 | Dummy Node | [▶](https://www.youtube.com/watch?v=XIdigk956u0) |
| ☐ 141 | [Linked List Cycle](https://leetcode.com/problems/linked-list-cycle/) ⭐ 💡 | 🟢 | Fast & Slow Pointers | [▶](https://www.youtube.com/watch?v=gBTe7lFR3vc) |
| ☐ 143 | [Reorder List](https://leetcode.com/problems/reorder-list/) ⭐ | 🟡 | Fast/Slow + Reverse | [▶](https://www.youtube.com/watch?v=S5bfdUTrKLM) |
| ☐ 019 | [Remove Nth Node From End of List](https://leetcode.com/problems/remove-nth-node-from-end-of-list/) ⭐ | 🟡 | Two Pointers, Dummy | [▶](https://www.youtube.com/watch?v=XVuQxVej6y8) |
| ☐ 138 | [Copy List with Random Pointer](https://leetcode.com/problems/copy-list-with-random-pointer/) | 🟡 | HashMap | [▶](https://www.youtube.com/watch?v=5Y2EiZST97Y) |
| ☐ 002 | [Add Two Numbers](https://leetcode.com/problems/add-two-numbers/) | 🟡 | Simulation | [▶](https://www.youtube.com/watch?v=wgFPrzTjm7s) |
| ☐ 287 | [Find the Duplicate Number](https://leetcode.com/problems/find-the-duplicate-number/) 💡 | 🟡 | Floyd's Cycle, Binary Search | [▶](https://www.youtube.com/watch?v=wjYnzkAhcNk) |
| ☐ 146 | [LRU Cache](https://leetcode.com/problems/lru-cache/) 💡 | 🟡 | HashMap + Doubly Linked List | [▶](https://www.youtube.com/watch?v=7ABFKPK2hD4) |
| ☐ 023 | [Merge K Sorted Lists](https://leetcode.com/problems/merge-k-sorted-lists/) ⭐ 💡 | 🔴 | Heap / Divide & Conquer | [▶](https://www.youtube.com/watch?v=q5a5OiGbT6Q) |
| ☐ 025 | [Reverse Nodes in K-Group](https://leetcode.com/problems/reverse-nodes-in-k-group/) | 🔴 | Recursion, Reverse | [▶](https://www.youtube.com/watch?v=1UOPsfP85V4) |

---

### 🌳 Trees

**Prerequisites:** BST Insert/Remove · DFS · BFS · BST Sets/Maps · Iterative DFS

**Key Pattern:** Most tree problems = DFS recursion (return values bottom-up). BFS = level-order with a queue. BST properties: left < node < right.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 226 | [Invert Binary Tree](https://leetcode.com/problems/invert-binary-tree/) ⭐ 💡 | 🟢 | DFS | [▶](https://www.youtube.com/watch?v=OnSn2XEQ4MY) |
| ☐ 104 | [Maximum Depth of Binary Tree](https://leetcode.com/problems/maximum-depth-of-binary-tree/) ⭐ | 🟢 | DFS / BFS | [▶](https://www.youtube.com/watch?v=hTM3phVI6YQ) |
| ☐ 543 | [Diameter of Binary Tree](https://leetcode.com/problems/diameter-of-binary-tree/) | 🟢 | DFS | [▶](https://www.youtube.com/watch?v=K81C31ytOZE) |
| ☐ 110 | [Balanced Binary Tree](https://leetcode.com/problems/balanced-binary-tree/) | 🟢 | DFS | [▶](https://www.youtube.com/watch?v=QfJsau0ItOY) |
| ☐ 100 | [Same Tree](https://leetcode.com/problems/same-tree/) ⭐ | 🟢 | DFS | [▶](https://www.youtube.com/watch?v=vRbbcKXCxOw) |
| ☐ 572 | [Subtree of Another Tree](https://leetcode.com/problems/subtree-of-another-tree/) ⭐ | 🟢 | DFS | [▶](https://www.youtube.com/watch?v=E36O5SWp-LE) |
| ☐ 235 | [Lowest Common Ancestor of BST](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/) ⭐ 💡 | 🟡 | BST, DFS | [▶](https://www.youtube.com/watch?v=gs2LMfuOR9k) |
| ☐ 236 | [Lowest Common Ancestor of Binary Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/) ⭐ 💡 | 🟡 | DFS | — |
| ☐ 102 | [Binary Tree Level Order Traversal](https://leetcode.com/problems/binary-tree-level-order-traversal/) ⭐ 💡 | 🟡 | BFS | [▶](https://www.youtube.com/watch?v=6ZnyEApgFYg) |
| ☐ 199 | [Binary Tree Right Side View](https://leetcode.com/problems/binary-tree-right-side-view/) | 🟡 | BFS | [▶](https://www.youtube.com/watch?v=d4zLyf32e3I) |
| ☐ 1448 | [Count Good Nodes in Binary Tree](https://leetcode.com/problems/count-good-nodes-in-binary-tree/) | 🟡 | DFS | [▶](https://www.youtube.com/watch?v=7cp5imvDzl4) |
| ☐ 098 | [Validate Binary Search Tree](https://leetcode.com/problems/validate-binary-search-tree/) ⭐ 💡 | 🟡 | DFS, Min/Max Bounds | [▶](https://www.youtube.com/watch?v=s6ATEkipzow) |
| ☐ 230 | [Kth Smallest Element in BST](https://leetcode.com/problems/kth-smallest-element-in-a-bst/) ⭐ | 🟡 | Inorder DFS | [▶](https://www.youtube.com/watch?v=5LUXSvjmGCw) |
| ☐ 105 | [Construct Binary Tree from Preorder and Inorder](https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/) ⭐ 💡 | 🟡 | DFS, HashMap | [▶](https://www.youtube.com/watch?v=ihj4IQGZ2zc) |
| ☐ 124 | [Binary Tree Maximum Path Sum](https://leetcode.com/problems/binary-tree-maximum-path-sum/) ⭐ 💡 | 🔴 | DFS, Global Max | [▶](https://www.youtube.com/watch?v=Hr5cWUld4vU) |
| ☐ 297 | [Serialize and Deserialize Binary Tree](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/) | 🔴 | BFS / DFS, Design | [▶](https://www.youtube.com/watch?v=u4JAi2JJhI8) |

---

### 🔤 Tries

**Prerequisites:** Trie data structure

**Key Pattern:** Each node has 26 children (a–z) and an `isEnd` flag. Insert: O(m). Search: O(m). Use for prefix matching, autocomplete, word search.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 208 | [Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/) ⭐ 💡 | 🟡 | Trie Design | [▶](https://www.youtube.com/watch?v=oobqoCJlHA0) |
| ☐ 211 | [Design Add and Search Words Data Structure](https://leetcode.com/problems/design-add-and-search-words-data-structure/) ⭐ | 🟡 | Trie, DFS | [▶](https://www.youtube.com/watch?v=BTf05gs_8iU) |
| ☐ 212 | [Word Search II](https://leetcode.com/problems/word-search-ii/) ⭐ 💡 | 🔴 | Trie + Backtracking | [▶](https://www.youtube.com/watch?v=asbcE9mZz_U) |

---

### 🔄 Backtracking

**Prerequisites:** Tree Maze · Subsets · Combinations · Permutations

**Key Pattern:** "Choose, explore, unchoose." Build a decision tree. Prune early when a branch can't lead to a solution. Template: `if base_case: add; for choice: pick → recurse → unpick`.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 078 | [Subsets](https://leetcode.com/problems/subsets/) 💡 | 🟡 | Backtracking | [▶](https://www.youtube.com/watch?v=REOH22Xwdkk) |
| ☐ 039 | [Combination Sum](https://leetcode.com/problems/combination-sum/) ⭐ 💡 | 🟡 | Backtracking | [▶](https://www.youtube.com/watch?v=GBKI9VSKdGg) |
| ☐ 046 | [Permutations](https://leetcode.com/problems/permutations/) 💡 | 🟡 | Backtracking | [▶](https://www.youtube.com/watch?v=FZe0UqISmUw) |
| ☐ 090 | [Subsets II](https://leetcode.com/problems/subsets-ii/) | 🟡 | Backtracking, Dedup | [▶](https://www.youtube.com/watch?v=Vn2v6ajA7U0) |
| ☐ 040 | [Combination Sum II](https://leetcode.com/problems/combination-sum-ii/) | 🟡 | Backtracking, Dedup | [▶](https://www.youtube.com/watch?v=FOyRpNUSFeA) |
| ☐ 079 | [Word Search](https://leetcode.com/problems/word-search/) ⭐ | 🟡 | Backtracking, DFS Grid | [▶](https://www.youtube.com/watch?v=pfiQ_PS1g8E) |
| ☐ 131 | [Palindrome Partitioning](https://leetcode.com/problems/palindrome-partitioning/) | 🟡 | Backtracking | [▶](https://www.youtube.com/watch?v=3jvWodd7ht0) |
| ☐ 017 | [Letter Combinations of a Phone Number](https://leetcode.com/problems/letter-combinations-of-a-phone-number/) | 🟡 | Backtracking | [▶](https://www.youtube.com/watch?v=0snEunUacZY) |
| ☐ 051 | [N-Queens](https://leetcode.com/problems/n-queens/) | 🔴 | Backtracking | [▶](https://www.youtube.com/watch?v=Ph95IHmRp5M) |

---

### ⛰️ Heap / Priority Queue

**Prerequisites:** Heap Properties · Push/Pop · Heapify · Two Heaps

**Key Pattern:** Use a min-heap for "k smallest/largest." Use two heaps (max-heap left, min-heap right) for medians. Python: `heapq` is min-heap; negate values for max-heap.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 703 | [Kth Largest Element in a Stream](https://leetcode.com/problems/kth-largest-element-in-a-stream/) | 🟢 | Min-Heap | [▶](https://www.youtube.com/watch?v=hOjcdrqMoQ8) |
| ☐ 1046 | [Last Stone Weight](https://leetcode.com/problems/last-stone-weight/) | 🟢 | Max-Heap | [▶](https://www.youtube.com/watch?v=B-QCq79-Vfw) |
| ☐ 973 | [K Closest Points to Origin](https://leetcode.com/problems/k-closest-points-to-origin/) | 🟡 | Heap / QuickSelect | [▶](https://www.youtube.com/watch?v=rI2EBUEMfTk) |
| ☐ 215 | [Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/) 💡 | 🟡 | Heap / QuickSelect | [▶](https://www.youtube.com/watch?v=XEmy13g1Qxc) |
| ☐ 621 | [Task Scheduler](https://leetcode.com/problems/task-scheduler/) | 🟡 | Greedy, Max-Heap | [▶](https://www.youtube.com/watch?v=s8p8ukTyA2I) |
| ☐ 355 | [Design Twitter](https://leetcode.com/problems/design-twitter/) | 🟡 | Heap, Design | [▶](https://www.youtube.com/watch?v=pNichitDD2E) |
| ☐ 295 | [Find Median from Data Stream](https://leetcode.com/problems/find-median-from-data-stream/) ⭐ 💡 | 🔴 | Two Heaps | [▶](https://www.youtube.com/watch?v=itmhHWaHupI) |

---

### 🗺️ Graphs

**Prerequisites:** Intro to Graphs · Matrix DFS · Matrix BFS · Adjacency List

**Key Pattern:** DFS for connectivity/path. BFS for shortest path. Union-Find for component merging. Always track `visited` to avoid cycles.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 200 | [Number of Islands](https://leetcode.com/problems/number-of-islands/) ⭐ 💡 | 🟡 | DFS/BFS Grid | [▶](https://www.youtube.com/watch?v=pV2kpPD66nE) |
| ☐ 695 | [Max Area of Island](https://leetcode.com/problems/max-area-of-island/) | 🟡 | DFS Grid | [▶](https://www.youtube.com/watch?v=iJGr1OtmH0c) |
| ☐ 133 | [Clone Graph](https://leetcode.com/problems/clone-graph/) ⭐ | 🟡 | DFS/BFS, HashMap | [▶](https://www.youtube.com/watch?v=mQeF6bN8hMk) |
| ☐ 286 | [Walls and Gates](https://neetcode.io/problems/islands-and-treasure) | 🟡 | Multi-source BFS | [▶](https://www.youtube.com/watch?v=e69C6xhiSQE) |
| ☐ 994 | [Rotting Oranges](https://leetcode.com/problems/rotting-oranges/) | 🟡 | Multi-source BFS | [▶](https://www.youtube.com/watch?v=y704fEOx0s0) |
| ☐ 417 | [Pacific Atlantic Water Flow](https://leetcode.com/problems/pacific-atlantic-water-flow/) ⭐ | 🟡 | Reverse DFS/BFS | [▶](https://www.youtube.com/watch?v=s-VkcjHqkGI) |
| ☐ 130 | [Surrounded Regions](https://leetcode.com/problems/surrounded-regions/) | 🟡 | Reverse DFS | [▶](https://www.youtube.com/watch?v=9z2BunfoZ5Y) |
| ☐ 207 | [Course Schedule](https://leetcode.com/problems/course-schedule/) ⭐ 💡 | 🟡 | Cycle Detection, Topo Sort | [▶](https://www.youtube.com/watch?v=EgI5nU9etnU) |
| ☐ 210 | [Course Schedule II](https://leetcode.com/problems/course-schedule-ii/) 💡 | 🟡 | Topological Sort | [▶](https://www.youtube.com/watch?v=Akt3glAwyfY) |
| ☐ 261 | [Graph Valid Tree](https://neetcode.io/problems/valid-tree) ⭐ | 🟡 | Union-Find / DFS | [▶](https://www.youtube.com/watch?v=bXsUuownnoQ) |
| ☐ 323 | [Number of Connected Components](https://neetcode.io/problems/count-connected-components) ⭐ | 🟡 | Union-Find / DFS | [▶](https://www.youtube.com/watch?v=8f1XPm4WOUc) |
| ☐ 684 | [Redundant Connection](https://leetcode.com/problems/redundant-connection/) | 🟡 | Union-Find | [▶](https://www.youtube.com/watch?v=FXWRE67PLL0) |
| ☐ 127 | [Word Ladder](https://leetcode.com/problems/word-ladder/) | 🔴 | BFS | [▶](https://www.youtube.com/watch?v=h9iTnkgv05E) |

---

### 📈 1-D DP

**Prerequisites:** 1-Dimension DP · Palindromes

**Key Pattern:** `dp[i]` = best answer for first `i` elements. Either: (1) use/skip current element, or (2) extend from previous states. Build bottom-up to avoid recursion overhead.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 070 | [Climbing Stairs](https://leetcode.com/problems/climbing-stairs/) ⭐ 💡 | 🟢 | Fibonacci DP | [▶](https://www.youtube.com/watch?v=Y0lT9Fck7qI) |
| ☐ 746 | [Min Cost Climbing Stairs](https://leetcode.com/problems/min-cost-climbing-stairs/) | 🟢 | DP | [▶](https://www.youtube.com/watch?v=ktmzAZWkEZ0) |
| ☐ 198 | [House Robber](https://leetcode.com/problems/house-robber/) ⭐ 💡 | 🟡 | DP | [▶](https://www.youtube.com/watch?v=73r3KWiEvyk) |
| ☐ 213 | [House Robber II](https://leetcode.com/problems/house-robber-ii/) ⭐ | 🟡 | DP, Circular | [▶](https://www.youtube.com/watch?v=rWAJCfYYOvM) |
| ☐ 005 | [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/) ⭐ 💡 | 🟡 | Expand from Center / DP | [▶](https://www.youtube.com/watch?v=XYQecbcd6_c) |
| ☐ 647 | [Palindromic Substrings](https://leetcode.com/problems/palindromic-substrings/) ⭐ | 🟡 | Expand from Center | [▶](https://www.youtube.com/watch?v=4RACzI5-du8) |
| ☐ 091 | [Decode Ways](https://leetcode.com/problems/decode-ways/) ⭐ | 🟡 | DP | [▶](https://www.youtube.com/watch?v=6aEyTjOwlJU) |
| ☐ 322 | [Coin Change](https://leetcode.com/problems/coin-change/) ⭐ 💡 | 🟡 | DP (Unbounded Knapsack) | [▶](https://www.youtube.com/watch?v=H9bfqozjoqs) |
| ☐ 152 | [Maximum Product Subarray](https://leetcode.com/problems/maximum-product-subarray/) ⭐ | 🟡 | DP, Track Min/Max | [▶](https://www.youtube.com/watch?v=lXVy6YWFcRM) |
| ☐ 139 | [Word Break](https://leetcode.com/problems/word-break/) ⭐ | 🟡 | DP, HashSet | [▶](https://www.youtube.com/watch?v=Sx9NNgInc3A) |
| ☐ 300 | [Longest Increasing Subsequence](https://leetcode.com/problems/longest-increasing-subsequence/) ⭐ 💡 | 🟡 | DP / Binary Search | [▶](https://www.youtube.com/watch?v=cjWnW0hdF1Y) |
| ☐ 416 | [Partition Equal Subset Sum](https://leetcode.com/problems/partition-equal-subset-sum/) | 🟡 | 0/1 Knapsack DP | [▶](https://www.youtube.com/watch?v=IsvocB5BJhw) |

---

### 📊 2-D DP

**Prerequisites:** 2-Dimension DP · 0/1 Knapsack · Unbounded Knapsack · LCS

**Key Pattern:** `dp[i][j]` = answer using first `i` of one sequence and `j` of another. Most 2D DP has a clear "include/exclude" or "match/skip" transition.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 062 | [Unique Paths](https://leetcode.com/problems/unique-paths/) ⭐ | 🟡 | Grid DP | [▶](https://www.youtube.com/watch?v=IlEsdxuD4lY) |
| ☐ 1143 | [Longest Common Subsequence](https://leetcode.com/problems/longest-common-subsequence/) ⭐ 💡 | 🟡 | 2D DP | [▶](https://www.youtube.com/watch?v=Ua0GhsJSlWM) |
| ☐ 309 | [Best Time to Buy and Sell Stock with Cooldown](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/) | 🟡 | State Machine DP | [▶](https://www.youtube.com/watch?v=I7j0F7AHpb8) |
| ☐ 518 | [Coin Change II](https://leetcode.com/problems/coin-change-ii/) | 🟡 | Unbounded Knapsack | [▶](https://www.youtube.com/watch?v=Mjy4hd2xgrs) |
| ☐ 494 | [Target Sum](https://leetcode.com/problems/target-sum/) | 🟡 | 0/1 Knapsack | [▶](https://www.youtube.com/watch?v=g0npyaQtAQM) |
| ☐ 097 | [Interleaving String](https://leetcode.com/problems/interleaving-string/) | 🟡 | 2D DP | [▶](https://www.youtube.com/watch?v=3Rw3p9LrgvE) |
| ☐ 072 | [Edit Distance](https://leetcode.com/problems/edit-distance/) 💡 | 🟡 | 2D DP | [▶](https://www.youtube.com/watch?v=XYi2-LPrwm4) |
| ☐ 329 | [Longest Increasing Path in a Matrix](https://leetcode.com/problems/longest-increasing-path-in-a-matrix/) | 🔴 | DFS + Memoization | [▶](https://www.youtube.com/watch?v=wCc_nd-GiEc) |
| ☐ 115 | [Distinct Subsequences](https://leetcode.com/problems/distinct-subsequences/) | 🔴 | 2D DP | [▶](https://www.youtube.com/watch?v=-RDzMJ33nx8) |
| ☐ 312 | [Burst Balloons](https://leetcode.com/problems/burst-balloons/) | 🔴 | Interval DP | [▶](https://www.youtube.com/watch?v=VFskby7lUbw) |
| ☐ 010 | [Regular Expression Matching](https://leetcode.com/problems/regular-expression-matching/) | 🔴 | 2D DP | [▶](https://www.youtube.com/watch?v=HAA8mgxlov8) |

---

### ⏱️ Intervals

**Key Pattern:** Sort by start time. To merge: check `current.start <= prev.end`. To find non-overlapping: greedily keep intervals that end earliest.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 057 | [Insert Interval](https://leetcode.com/problems/insert-interval/) ⭐ 💡 | 🟡 | Intervals, Merge | [▶](https://www.youtube.com/watch?v=A8NUOmlwOlM) |
| ☐ 056 | [Merge Intervals](https://leetcode.com/problems/merge-intervals/) ⭐ 💡 | 🟡 | Sort, Merge | [▶](https://www.youtube.com/watch?v=44H3cEC2fFM) |
| ☐ 435 | [Non-Overlapping Intervals](https://leetcode.com/problems/non-overlapping-intervals/) ⭐ | 🟡 | Greedy, Sort | [▶](https://www.youtube.com/watch?v=nONCGxWoUfM) |
| ☐ 252 | [Meeting Rooms](https://neetcode.io/problems/meeting-schedule) ⭐ | 🟢 | Sort, Intervals | [▶](https://www.youtube.com/watch?v=PaJxqZVPhbg) |
| ☐ 253 | [Meeting Rooms II](https://neetcode.io/problems/meeting-schedule-ii) ⭐ 💡 | 🟡 | Heap / Two Pointers | [▶](https://www.youtube.com/watch?v=FdzJmTCVyJU) |
| ☐ 1851 | [Minimum Interval to Include Each Query](https://leetcode.com/problems/minimum-interval-to-include-each-query/) | 🔴 | Heap, Sort | [▶](https://www.youtube.com/watch?v=5hQ5WWW5awQ) |

---

### 💰 Greedy

**Prerequisites:** Kadane's Algorithm

**Key Pattern:** Make the locally optimal choice at each step. Works when local optimal → global optimal. Prove it works, then code it.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 053 | [Maximum Subarray](https://leetcode.com/problems/maximum-subarray/) ⭐ 💡 | 🟡 | Kadane's Algorithm | [▶](https://www.youtube.com/watch?v=5WZl3MMT0Eg) |
| ☐ 055 | [Jump Game](https://leetcode.com/problems/jump-game/) ⭐ 💡 | 🟡 | Greedy | [▶](https://www.youtube.com/watch?v=Yan0cv2cLy8) |
| ☐ 045 | [Jump Game II](https://leetcode.com/problems/jump-game-ii/) | 🟡 | Greedy, BFS-like | [▶](https://www.youtube.com/watch?v=dJ7sWiOoK7g) |
| ☐ 134 | [Gas Station](https://leetcode.com/problems/gas-station/) | 🟡 | Greedy | [▶](https://www.youtube.com/watch?v=lJwbPZGo05A) |
| ☐ 846 | [Hand of Straights](https://leetcode.com/problems/hand-of-straights/) | 🟡 | Greedy, HashMap | [▶](https://www.youtube.com/watch?v=amnrMCVd2YI) |
| ☐ 1899 | [Merge Triplets to Form Target Triplet](https://leetcode.com/problems/merge-triplets-to-form-target-triplet/) | 🟡 | Greedy | [▶](https://www.youtube.com/watch?v=kShkQLQZ9K4) |
| ☐ 763 | [Partition Labels](https://leetcode.com/problems/partition-labels/) | 🟡 | Greedy, Last Index | [▶](https://www.youtube.com/watch?v=B7m8UmZE-vw) |
| ☐ 678 | [Valid Parenthesis String](https://leetcode.com/problems/valid-parenthesis-string/) | 🟡 | Greedy | [▶](https://www.youtube.com/watch?v=QhPdNS143Qg) |

---

### 🚀 Advanced Graphs

**Prerequisites:** Dijkstra's · Prim's · Kruskal's · Topological Sort

**Key Pattern:** Dijkstra = weighted BFS with a min-heap. Union-Find = MST (Kruskal's). Bellman-Ford = negative weights. Topo sort = DFS finishing order reversed.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 332 | [Reconstruct Itinerary](https://leetcode.com/problems/reconstruct-itinerary/) | 🔴 | Eulerian Path, DFS | [▶](https://www.youtube.com/watch?v=ZyB_gQ8vqGA) |
| ☐ 1584 | [Min Cost to Connect All Points](https://leetcode.com/problems/min-cost-to-connect-all-points/) | 🟡 | MST (Prim's / Kruskal's) | [▶](https://www.youtube.com/watch?v=f7JOBJIC-NA) |
| ☐ 743 | [Network Delay Time](https://leetcode.com/problems/network-delay-time/) 💡 | 🟡 | Dijkstra's | [▶](https://www.youtube.com/watch?v=EaphyqKU4PQ) |
| ☐ 778 | [Swim in Rising Water](https://leetcode.com/problems/swim-in-rising-water/) | 🔴 | Dijkstra's / Binary Search | [▶](https://www.youtube.com/watch?v=amvrKlMLuGY) |
| ☐ 269 | [Alien Dictionary](https://neetcode.io/problems/foreign-dictionary) ⭐ 💡 | 🔴 | Topological Sort | [▶](https://www.youtube.com/watch?v=6kTZYvNNyps) |
| ☐ 787 | [Cheapest Flights Within K Stops](https://leetcode.com/problems/cheapest-flights-within-k-stops/) | 🟡 | Bellman-Ford / Dijkstra | [▶](https://www.youtube.com/watch?v=5eIK3zUdYmE) |

---

### 🔢 Bit Manipulation

**Prerequisites:** Bit Operations

**Key Pattern:** XOR (^) cancels duplicates. AND (&) masks bits. Shift right (>>) to check bits. `n & (n-1)` clears lowest set bit. `n & (-n)` isolates lowest set bit.

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 136 | [Single Number](https://leetcode.com/problems/single-number/) 💡 | 🟢 | XOR | [▶](https://www.youtube.com/watch?v=qMPX1AOa83k) |
| ☐ 191 | [Number of 1 Bits](https://leetcode.com/problems/number-of-1-bits/) ⭐ | 🟢 | Bit Count | [▶](https://www.youtube.com/watch?v=5Km3utixwZs) |
| ☐ 338 | [Counting Bits](https://leetcode.com/problems/counting-bits/) ⭐ | 🟢 | DP + Bits | [▶](https://www.youtube.com/watch?v=RyBM56RIWrM) |
| ☐ 190 | [Reverse Bits](https://leetcode.com/problems/reverse-bits/) ⭐ | 🟢 | Bit Manipulation | [▶](https://www.youtube.com/watch?v=UcoN6UjAI64) |
| ☐ 268 | [Missing Number](https://leetcode.com/problems/missing-number/) ⭐ | 🟢 | XOR / Math | [▶](https://www.youtube.com/watch?v=WnPLSRLSANE) |
| ☐ 371 | [Sum of Two Integers](https://leetcode.com/problems/sum-of-two-integers/) ⭐ 💡 | 🟡 | Bit Add (XOR + Carry) | [▶](https://www.youtube.com/watch?v=gVUrDV4tZfY) |
| ☐ 007 | [Reverse Integer](https://leetcode.com/problems/reverse-integer/) | 🟡 | Math, Overflow | [▶](https://www.youtube.com/watch?v=HAgLH58IgJQ) |

---

### 📐 Math & Geometry

**Key Pattern:** Matrix rotations = transpose + reverse. Spiral traversal = shrink boundaries. Modular arithmetic prevents overflow. Fast exponentiation = O(log n).

| # | Problem | Diff | Tags | Video |
|---|---------|------|------|-------|
| ☐ 048 | [Rotate Image](https://leetcode.com/problems/rotate-image/) ⭐ 💡 | 🟡 | Transpose + Reverse | [▶](https://www.youtube.com/watch?v=fMSJSS7eO1w) |
| ☐ 054 | [Spiral Matrix](https://leetcode.com/problems/spiral-matrix/) ⭐ | 🟡 | Boundary Simulation | [▶](https://www.youtube.com/watch?v=BJnMZNwUk1M) |
| ☐ 073 | [Set Matrix Zeroes](https://leetcode.com/problems/set-matrix-zeroes/) ⭐ | 🟡 | In-place Marking | [▶](https://www.youtube.com/watch?v=T41rL0L3Pnw) |
| ☐ 202 | [Happy Number](https://leetcode.com/problems/happy-number/) | 🟢 | Floyd's Cycle | [▶](https://www.youtube.com/watch?v=ljz85bxOYJ0) |
| ☐ 066 | [Plus One](https://leetcode.com/problems/plus-one/) | 🟢 | Array, Math | [▶](https://www.youtube.com/watch?v=jIaA8boiG1s) |
| ☐ 050 | [Pow(x, n)](https://leetcode.com/problems/powx-n/) 💡 | 🟡 | Fast Exponentiation | [▶](https://www.youtube.com/watch?v=g9YQyYi4IQQ) |
| ☐ 043 | [Multiply Strings](https://leetcode.com/problems/multiply-strings/) | 🟡 | String Math | [▶](https://www.youtube.com/watch?v=1vZswirL8Y8) |
| ☐ 2013 | [Detect Squares](https://leetcode.com/problems/detect-squares/) | 🟡 | HashMap, Geometry | [▶](https://www.youtube.com/watch?v=bahebearrDc) |

---

## 🧩 Pattern Cheat Sheet

| Pattern | When to Use | Time |
|---------|-------------|------|
| **Hash Map/Set** | Lookup, frequency count, dedup | O(n) |
| **Two Pointers** | Sorted array, palindrome, pair sum | O(n) |
| **Sliding Window** | Subarray/substring with constraint | O(n) |
| **Monotonic Stack** | Next greater/smaller element | O(n) |
| **Binary Search** | Sorted or monotonic search space | O(log n) |
| **Fast & Slow Pointers** | Cycle detection, middle of list | O(n) |
| **DFS (recursive)** | Tree/graph traversal, backtracking | O(V+E) |
| **BFS (queue)** | Shortest path, level order | O(V+E) |
| **Union-Find** | Connected components, cycle detect | O(α·n) ≈ O(1) |
| **Topological Sort** | DAG ordering, course schedule | O(V+E) |
| **0/1 Knapsack DP** | Include/exclude decisions | O(n·W) |
| **Interval Merge** | Overlapping ranges | O(n log n) |
| **Greedy** | Locally optimal → globally optimal | varies |
| **Heap (k-th element)** | Top-K, streaming median | O(n log k) |
| **Trie** | Prefix search, word dict | O(m) per op |
| **Divide & Conquer** | Merge sort, tree recursion | O(n log n) |

---

## 🎯 Study Plans

### 🏃 2-Week Speed Run (Blind 75 only)
Focus only on ⭐ problems. ~4-5 problems/day.

### 📅 5-Week Full NeetCode 150
Week 1: Arrays, Two Pointers, Sliding Window, Stack  
Week 2: Binary Search, Linked List, Trees  
Week 3: Tries, Backtracking, Heap, Graphs  
Week 4: 1-D DP, Intervals, Greedy  
Week 5: 2-D DP, Advanced Graphs, Bit Manipulation, Math  

### 🔥 Interview Week (Top 30 💡 problems)
Focus only on 💡 tagged problems — these are the highest-frequency patterns seen in FAANG/top-tier interviews in 2025–2026.

---

## 📊 Progress Tracker

| Category | Total | Completed | Remaining |
|----------|-------|-----------|-----------|
| Arrays & Hashing | 9 | 0 | 9 |
| Two Pointers | 5 | 0 | 5 |
| Sliding Window | 6 | 0 | 6 |
| Stack | 7 | 0 | 7 |
| Binary Search | 7 | 0 | 7 |
| Linked List | 11 | 0 | 11 |
| Trees | 16 | 0 | 16 |
| Tries | 3 | 0 | 3 |
| Backtracking | 9 | 0 | 9 |
| Heap / Priority Queue | 7 | 0 | 7 |
| Graphs | 13 | 0 | 13 |
| 1-D DP | 12 | 0 | 12 |
| 2-D DP | 11 | 0 | 11 |
| Intervals | 6 | 0 | 6 |
| Greedy | 8 | 0 | 8 |
| Advanced Graphs | 6 | 0 | 6 |
| Bit Manipulation | 7 | 0 | 7 |
| Math & Geometry | 8 | 0 | 8 |
| **Total** | **151** | **0** | **151** |

---

## 💡 Interview Tips (2026)

- **Meta, Google, Amazon** heavily test graph traversal, DP, and trees. Start there.
- **Startups and mid-size** tend to focus on Arrays, Strings, and basic DP.
- **System design rounds** at senior levels often follow coding — NeetCode has a [system design course](https://neetcode.io/courses/system-design-for-beginners/0) too.
- Always clarify constraints: ask about input size, edge cases, and expected complexity before coding.
- Think out loud — interviewers want to see your reasoning, not just the answer.
- Practice with a timer: aim for Easy in ~10 min, Medium in ~20–25 min.
