| 1 | How do you handle task failures and alerting in Airflow?Medium | Airflow | Medium | scenario, conceptual | — | |
| 2 | How do you make one Airflow DAG depend on another?Medium | Airflow | Medium | architecture, conceptual | — | |
| 3 | How do you test Airflow DAGs before they reach production?Medium | Airflow | Medium | coding, conceptual | — | |
| 4 | How should Airflow retries and idempotency work together?Medium | Airflow | Medium | conceptual, scenario | — | |
| 5 | How would you process a variable number of files each day in Airflow?Medium | Airflow | Medium | coding, scenario | — | |
| 6 | Poke, reschedule or deferrable: how should an Airflow sensor wait?Medium | Airflow | Medium | conceptual, optimization | — | |
| 7 | What are the logical date and data interval in Airflow, and what changed in Airflow 3?Medium | Airflow | Medium | conceptual, debugging | — | |
| 8 | What is the difference between catchup and backfill in Airflow 3?Medium | Airflow | Medium | conceptual, scenario | — | |
| 9 | When should Airflow tasks pass data through XCom, and when through external storage?Medium | Airflow | Medium | conceptual, scenario | — | |
| 10 | Airflow is slow and tasks sit in scheduled or queued. How do you find the bottleneck?Hard | Airflow | Hard | debugging, optimization | — | |
| 11 | How do you choose an Airflow executor: Local, Celery, Kubernetes or several?Hard | Airflow | Hard | architecture, scenario | — | |
| 12 | What changed in Airflow 3, and how would you migrate Airflow 2 DAGs?Hard | Airflow | Hard | conceptual, scenario | — | |
| 13 | How would you design the S3 layout and partitioning for a data lake?Medium | AWS | Medium | architecture, scenario | — | |
| 14 | ETL vs ELT: what factors decide the choice?Easy | Data Engineering | Easy | conceptual, architecture | — | |
| 15 | Batch or streaming: how do you choose for a use case?Medium | Data Engineering | Medium | conceptual, architecture | — | |
| 16 | Data lake vs warehouse vs lakehouse: when would you choose each?Medium | Data Engineering | Medium | conceptual, architecture | — | |
| 17 | How do you backfill a pipeline safely?Medium | Data Engineering | Medium | scenario, architecture | — | |
| 18 | How do you handle late-arriving data?Medium | Data Engineering | Medium | scenario, architecture | — | |
| 19 | How do you handle PII in a data pipeline?Medium | Data Engineering | Medium | scenario, architecture | — | |
| 20 | How do you handle schema changes from upstream sources in a pipeline?Medium | Data Engineering | Medium | scenario, architecture | — | |
| 21 | How do you test a data pipeline?Medium | Data Engineering | Medium | conceptual, scenario | — | |
| 22 | How would you choose a partitioning strategy for a large table?Medium | Data Engineering | Medium | architecture, optimization | — | |
| 23 | How would you choose an orchestrator for data pipelines?Medium | Data Engineering | Medium | conceptual, architecture | — | |
| 24 | How would you design an idempotent batch pipeline?Medium | Data Engineering | Medium | architecture, scenario | — | |
| 25 | How would you design an incremental load for a large table?Medium | Data Engineering | Medium | architecture, scenario | — | |
| 26 | How would you investigate a suddenly slower data pipeline?Medium | Data Engineering | Medium | debugging, scenario | — | |
| 27 | How would you monitor pipeline freshness and data SLAs?Medium | Data Engineering | Medium | scenario, architecture | — | |
| 28 | What are the most important data-quality checks in production?Medium | Data Engineering | Medium | conceptual, scenario | — | |
| 29 | What does CI/CD look like for data pipelines?Medium | Data Engineering | Medium | conceptual, architecture | — | |
| 30 | Exactly-once vs effectively-once: what can a pipeline really guarantee?Hard | Data Engineering | Hard | conceptual, architecture | — | |
| 31 | How would you design a CDC pipeline?Hard | Data Engineering | Hard | architecture, scenario | — | |
| 32 | What is Unity Catalog used for?Easy | Databricks | Easy | conceptual | — | |
| 33 | What is Delta Lake time travel good for, and what are its limits?Easy | Delta Lake | Easy | conceptual, scenario | — | |
| 34 | What problems does Delta Lake solve?Easy | Delta Lake | Easy | conceptual | — | |
| 35 | Delta Lake vs Apache Iceberg vs Apache Hudi: how do they differ?Medium | Delta Lake | Medium | conceptual, architecture | — | |
| 36 | How does Delta Lake MERGE work, and why do concurrent MERGEs fail?Medium | Delta Lake | Medium | conceptual, debugging | — | |
| 37 | How is a Parquet file organised, and how does that speed up queries?Medium | Delta Lake | Medium | conceptual, optimization | — | |
| 38 | OPTIMIZE, Z-ORDER or liquid clustering: which would you use on a Delta table?Medium | Delta Lake | Medium | conceptual, optimization, scenario | — | |
| 39 | What does VACUUM do in Delta Lake, and what can go wrong?Medium | Delta Lake | Medium | conceptual, scenario | — | |
| 40 | What is schema evolution and when is it safe?Medium | Delta Lake | Medium | conceptual, scenario | — | |
| 41 | Backspace String Compare: Read Both Strings Backwards With Skip CountersEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 42 | Balanced Binary Tree: Height Check with Early ExitEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 43 | Best Time to Buy and Sell Stock: Maximum Profit From One TradeEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 44 | Binary Search: Find a Target in a Sorted Array in O(log n)Easy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 45 | Ceil in Sorted Array: Lower-Bound Binary SearchEasy | DSA | Easy | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 46 | Climbing Stairs: Count Ways with a Fibonacci-Style DPEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 47 | Complement of Base 10 Integer: Flip Bits With an All-Ones MaskEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 48 | Contains Duplicate: Detect Whether Any Value Appears TwiceEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 49 | Convert Sorted Array to BST: Pick the Middle, Recurse on HalvesEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 50 | Counting Bits: Set-Bit Counts for 0 to n with a One-Line DPEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 51 | Diameter of Binary Tree: Longest Path via Post-Order HeightsEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 52 | Find All Numbers Disappeared in an Array: Cyclic Sort and In-Place MarkingEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 53 | Find if Path Exists in Graph: Reachability with BFS or Union-FindEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 54 | Find Pivot Index: Balance Left and Right Prefix SumsEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 55 | Find Rotation Count: The Index of the Minimum Is the AnswerEasy | DSA | Easy | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 56 | First Unique Character in a String: Count, Then Scan AgainEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 57 | Flood Fill: Repaint a Connected Region with DFS or BFSEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 58 | Happy Number: Detect a Cycle in a Digit-Square SequenceEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 59 | Implement Queue using Stacks: FIFO With Two Stacks in Amortised O(1)Easy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 60 | Implement Stack using Queues: LIFO Behaviour From FIFO PartsEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 61 | Invert Binary Tree: Recursive and Iterative Mirror SolutionsEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 62 | Island Perimeter: Count Land Edges Without a TraversalEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 63 | Kth Largest Element in a Stream: Size-k Min-HeapEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 64 | Last Stone Weight: Simulating Smashes with a Max-HeapEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 65 | Linked List Cycle: Floyd's Fast and Slow PointersEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 66 | Longest Common Prefix: Shared Start of a List of StringsEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 67 | Longest Palindrome: Pair Up Letter Counts and Keep One CentreEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 68 | Majority Element: Find the Value That Fills More Than Half the ArrayEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 69 | Max Sum Subarray of Size K: The Fixed-Size Sliding WindowEasy | DSA | Easy | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 70 | Maximum Depth of Binary Tree: Recursive DFS, Iterative DFS and BFSEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 71 | Meeting Rooms: Check Whether One Person Can Attend Every MeetingEasy | DSA | Easy | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 72 | Merge Two Sorted Lists: Dummy Head Iteration and RecursionEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 73 | Middle of the Linked List: Find It in One Pass With Fast and Slow PointersEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 74 | Min Cost Climbing Stairs: Cheapest Path to the Top with 1D DPEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 75 | Missing Number: Find the One Value Absent From 0 to nEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 76 | Move Zeroes: Shift Zeros to the End While Keeping OrderEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 77 | Next Greater Element I: First Larger Value to the RightEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 78 | Number of 1 Bits: Count Set Bits in an IntegerEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 79 | Number of Occurrence: Count a Value with Two Boundary SearchesEasy | DSA | Easy | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 80 | Number of Recent Calls: Count Requests in a Sliding Time WindowEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 81 | Palindrome Linked List: Find the Middle, Reverse the Back Half, CompareEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 82 | Ransom Note: Check Letter Supply Against Demand With a CounterEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 83 | Remove All Adjacent Duplicates In String: Cancel Pairs With a StackEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 84 | Remove Duplicates from Sorted Array: Compact Unique Values In PlaceEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 85 | Reverse Bits: Mirror the 32 Bits of an Unsigned IntegerEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 86 | Reverse Linked List: Iterative and Recursive SolutionsEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 87 | Reverse String: Reverse a Character Array in PlaceEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 88 | Same Tree: Comparing Two Binary Trees Recursively and IterativelyEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 89 | Segregate 0s and 1s: Partition a Binary Array in One PassEasy | DSA | Easy | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 90 | Set Mismatch: Find the Duplicate and the Missing Number With Cyclic SortEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 91 | Single Number: Find the Value That Appears Only Once Using XOREasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 92 | Squares of a Sorted Array: Merge From Both Ends Without SortingEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 93 | Subtree of Another Tree: Brute-Force Matching and Linear SerialisationEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 94 | Two Sum: Find Two Indices That Add Up to a TargetEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 95 | Valid Anagram: Check Whether Two Strings Use the Same LettersEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 96 | Valid Palindrome II: Palindrome After Deleting at Most One CharacterEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 97 | Valid Palindrome: Check a Phrase While Ignoring Case and PunctuationEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 98 | Valid Parentheses: Check That Every Bracket Closes in the Right OrderEasy | DSA | Easy | coding | LeetCode ↗ (opens in a new tab) | |
| 99 | 0 - 1 Knapsack Problem: Take or Skip Each Item OnceMedium | DSA | Medium | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 100 | 132 Pattern: Find a Low, High, Middle Subsequence in One PassMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 101 | 3Sum Closest: Sort, Fix One Value, and Squeeze Two PointersMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 102 | 3Sum: Find All Unique Triplets That Sum to ZeroMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 103 | 4Sum: Two Fixed Indices, Two Pointers and Careful Duplicate SkippingMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 104 | Add Two Numbers: Digit-by-Digit Addition on Linked ListsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 105 | Aggressive Cows: Maximise the Minimum Gap with Binary SearchMedium | DSA | Medium | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 106 | Best Time to Buy and Sell Stock with Cooldown: State-Machine DPMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 107 | Binary Tree Level Order Traversal: BFS with a Queue, Level by LevelMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 108 | Binary Tree Right Side View: Last Node of Each LevelMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 109 | Capacity To Ship Packages Within D Days: Binary Search on CapacityMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 110 | Car Fleet: Count the Groups of Cars Arriving at a DestinationMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 111 | Cheapest Flights Within K Stops: Bounded Bellman-Ford for Limited HopsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 112 | Circular Array Loop: Fast and Slow Pointers on Index JumpsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 113 | Clone Graph: Deep-Copy a Connected Graph with a Hash Map and BFS or DFSMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 114 | Coin Change II: Count Combinations That Make an AmountMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 115 | Coin Change: Fewest Coins with Bottom-Up DPMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 116 | Combination Sum II: Use Each Value Once and Avoid Duplicate AnswersMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 117 | Combination Sum: Reach a Target with Reusable Values via BacktrackingMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 118 | Construct Binary Tree from Preorder and Inorder TraversalMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 119 | Container With Most Water: Maximise Area Between Two LinesMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 120 | Contiguous Array: Longest Balanced 0/1 Subarray via Prefix SumsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 121 | Copy List with Random Pointer: Hash Map and Interleaving SolutionsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 122 | Count Good Nodes in Binary Tree: DFS Carrying the Path MaximumMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 123 | Count Subsets with Sum: Add Up the Ways, Not Just True or FalseMedium | DSA | Medium | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 124 | Course Schedule II: Return a Valid Course Order with Topological SortMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 125 | Course Schedule: Detect a Cycle in a Prerequisite Graph with Kahn's AlgorithmMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 126 | Daily Temperatures: Days Until a Warmer Day With a Monotonic StackMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 127 | Decode Ways: Count Digit-to-Letter Decodings with Prefix DPMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 128 | Delete Node in a BST: Leaf, One Child and Two Children CasesMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 129 | Design Add and Search Words: Trie Search with WildcardsMedium | DSA | Medium | coding, architecture | LeetCode ↗ (opens in a new tab) | |
| 130 | Design Circular Queue: A Fixed-Capacity Ring BufferMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 131 | Design Twitter: News Feed with a K-Way Heap MergeMedium | DSA | Medium | coding, architecture | LeetCode ↗ (opens in a new tab) | |
| 132 | Edit Distance: Levenshtein Distance with a 2D DP TableMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 133 | Encode and Decode Strings: Serialise a List of Strings SafelyMedium | DSA | Medium | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 134 | Evaluate Reverse Polish Notation: Compute a Postfix ExpressionMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 135 | Extra Characters in a String: Dynamic Programming over a Trie of WordsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 136 | Find All Anagrams in a String: Fixed Window With Letter CountsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 137 | Find All Duplicates in an Array: Cyclic Sort and Sign Marking in O(1) SpaceMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 138 | Find First and Last Position of a Value: Lower and Upper Bound Binary SearchMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 139 | Find K Closest Elements: Binary Search for the Best WindowMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 140 | Find Minimum in Rotated Sorted Array: Binary Search Against the Right EndMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 141 | Find Peak Element: Follow the Uphill Side with Binary SearchMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 142 | Find the Duplicate Number: Cycle Detection on an ArrayMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 143 | Fruit Into Baskets: Longest Window With at Most Two Distinct ValuesMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 144 | Gas Station: Find the Start of a Circular Route in One Greedy PassMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 145 | Generate Parentheses: List Every Balanced String of n PairsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 146 | Graph Valid Tree: Check Edge Count, Connectivity and Cycles with Union-FindMedium | DSA | Medium | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 147 | Group Anagrams: Bucket Words That Share the Same LettersMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 148 | Hand of Straights: Group Cards into Consecutive Runs GreedilyMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 149 | House Robber II: Non-Adjacent Maximum Sum When Houses Form a CircleMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 150 | House Robber: Maximum Non-Adjacent Sum with Take-or-Skip DPMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 151 | Implement Trie (Prefix Tree): Insert, Search and Prefix LookupMedium | DSA | Medium | coding, architecture | LeetCode ↗ (opens in a new tab) | |
| 152 | Insert Interval: Add a Range to a Sorted List and Merge OverlapsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 153 | Insert into a BST: Walk Down to the Empty SpotMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 154 | Interleaving String: Can Two Strings Merge into a Third? 2D DPMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 155 | Interval List Intersections: Two Pointers over Sorted RangesMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 156 | Is Graph Bipartite?: Two-Colour Every ComponentMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 157 | Jump Game II: Fewest Jumps to the End with Greedy Level-by-Level BFSMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 158 | Jump Game: Can You Reach the Last Index? Greedy Furthest ReachMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 159 | K Closest Points to Origin: Bounded Max-Heap and QuickselectMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 160 | Koko Eating Bananas: Binary Search on the AnswerMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 161 | Kth Largest Element in an Array: Heap, Quickselect and CountingMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 162 | Kth Smallest Element in a BST: Inorder Traversal with Early StopMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 163 | Kth Smallest Element in a Sorted Matrix: Binary Search on ValuesMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 164 | Letter Case Permutation: Branch Twice on Every LetterMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 165 | Letter Combinations of a Phone Number: Cartesian Product by BacktrackingMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 166 | Linked List Cycle II: Find Where the Cycle Starts With Floyd's AlgorithmMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 167 | Longest Common Subsequence: The Classic Two-String DP TableMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 168 | Longest Consecutive Sequence: Longest Run of Consecutive Integers in O(n)Medium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 169 | Longest Increasing Subsequence: O(n^2) DP and O(n log n) Patience SortingMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 170 | Longest K Unique Characters Substring: A Window Bounded by a Distinct CountMedium | DSA | Medium | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 171 | Longest Palindromic Substring: Expand Around Centres or Interval DPMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 172 | Longest Repeating Character Replacement: Window With At Most k ChangesMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 173 | Longest Substring Without Repeating Characters: Sliding WindowMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 174 | Lowest Common Ancestor of a Binary Tree: One Post-Order SearchMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 175 | Lowest Common Ancestor of a BST: Follow the Split PointMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 176 | LRU Cache: Hash Map Plus Doubly Linked List for O(1) OperationsMedium | DSA | Medium | coding, architecture | LeetCode ↗ (opens in a new tab) | |
| 177 | Max Area of Island: Largest Connected Land Region with Flood FillMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 178 | Max Consecutive Ones III: Longest Window With at Most K ZerosMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 179 | Maximum Absolute Sum of Any Subarray: Run Kadane for Max and MinMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 180 | Maximum Candies Allocated to K Children: Binary Search on the ShareMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 181 | Maximum Length of Pair Chain: Greedy by Earliest EndMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 182 | Maximum Product Subarray: Track Both the Largest and Smallest ProductMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 183 | Maximum Subarray Sum with One Deletion: Kadane With Two StatesMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 184 | Maximum Subarray: Largest Sum of a Contiguous Slice with Kadane's AlgorithmMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 185 | Maximum Sum Circular Subarray: Kadane Plus Total Minus MinimumMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 186 | Maximum Sum Combination: The K Largest Pair Sums with a Max-HeapMedium | DSA | Medium | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 187 | Meeting Rooms II: Count the Rooms with a Min-Heap or a Sweep LineMedium | DSA | Medium | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 188 | Merge Intervals: Combine Every Overlapping RangeMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 189 | Merge Triplets to Form Target: Keep Only Triplets That Never OvershootMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 190 | Min Cost to Connect All Points: Minimum Spanning Tree with Prim or KruskalMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 191 | Min Cost to Connect Ropes: Always Join the Two ShortestMedium | DSA | Medium | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 192 | Min Stack: A Stack That Returns Its Minimum in Constant TimeMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 193 | Minimum Add to Make Parentheses Valid: Count Unmatched Brackets in One PassMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 194 | Minimum Height Trees: Trim Leaves Until the Centre RemainsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 195 | Minimum Number of Days to Make m Bouquets: Binary Search on the DayMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 196 | Minimum Size Subarray Sum: Grow Until Valid, Then ShrinkMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 197 | My Calendar I: Accept Bookings Only When They Do Not OverlapMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 198 | Network Delay Time: Single-Source Shortest Paths with Dijkstra's AlgorithmMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 199 | Next Greater Element II: Monotonic Stack Over a Circular ArrayMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 200 | Non-overlapping Intervals: Fewest Removals to Eliminate OverlapsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 201 | Number of Closed Islands: Sink the Border, Then CountMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 202 | Number of Connected Components in an Undirected Graph with Union-FindMedium | DSA | Medium | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 203 | Number of Islands: Count Connected Land Cells with BFS, DFS or Union-FindMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 204 | Number of Provinces: Count Components in an Adjacency MatrixMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 205 | Pacific Atlantic Water Flow: Reverse Multi-Source BFS from Both OceansMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 206 | Palindrome Partitioning: Split a String into Palindromes by BacktrackingMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 207 | Palindromic Substrings: Count Every Palindrome by Expanding Around CentresMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 208 | Partition Equal Subset Sum: 0/1 Knapsack on Half the TotalMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 209 | Partition Labels: Split a String So Each Letter Stays in One PartMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 210 | Path With Minimum Effort: Minimise the Largest Step on a GridMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 211 | Peak Index in a Mountain Array: Binary Search on the SlopeMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 212 | Permutation in String: Does One String Contain a Rearrangement of Another?Medium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 213 | Permutations: Every Ordering of Distinct Values with BacktrackingMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 214 | Product of Array Except Self: Prefix and Suffix Products Without DivisionMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 215 | Redundant Connection: Find the Edge That Closes a Cycle with Union-FindMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 216 | Remove All Adjacent Duplicates in String II: Stack of Character CountsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 217 | Remove Duplicate Letters: Smallest Order with a Greedy Monotonic StackMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 218 | Remove K Digits: Smallest Number With a Greedy Monotonic StackMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 219 | Remove Nodes From Linked List: Keep Nodes With Nothing Larger to Their RightMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 220 | Remove Nth Node From End of List: One Pass with a Gap of nMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 221 | Reorder List: Find the Middle, Reverse, Then InterleaveMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 222 | Reorganize String: Place the Most Frequent Character First, Never Twice in a RowMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 223 | Reverse Linked List II: Reverse a Sublist in One Pass With a Dummy NodeMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 224 | Rotate Image: Turn a Square Matrix 90 Degrees Clockwise in PlaceMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 225 | Rotate List: Close the Ring, Then Cut It at the New TailMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 226 | Rotting Oranges: Minutes to Spread via Level-by-Level Multi-Source BFSMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 227 | Search a 2D Matrix II: Staircase Search from the Top-Right CornerMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 228 | Search a 2D Matrix: Binary Search over a Flattened Sorted GridMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 229 | Search in Rotated Sorted Array: One-Pass Binary SearchMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 230 | Search Suggestions System: Autocomplete with a Trie or Sorted Binary SearchMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 231 | Set Matrix Zeroes: Zero Out Rows and Columns in PlaceMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 232 | Shortest Unsorted Continuous Subarray: Find the Boundaries With Running Max and MinMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 233 | Simplify Path: Canonical Unix Paths With a Stack of Directory NamesMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 234 | Single Number III: Split Two Unique Values With One XOR BitMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 235 | Sort Characters By Frequency: Count, Then Order by a Heap or BucketsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 236 | Sort Colors: One-Pass Three-Way Partition of 0s, 1s and 2sMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 237 | Spiral Matrix: Read a Grid in Clockwise Spiral OrderMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 238 | String to Integer (atoi): Parse a Signed 32-bit Integer by HandMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 239 | Subarray Product Less Than K: Count Windows Ending at Each IndexMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 240 | Subarray Sum Equals K: Count Contiguous Slices With a Given SumMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 241 | Subarray Sums Divisible by K: Count Matching Prefix RemaindersMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 242 | Subset Sum Problem: Track Every Reachable TotalMedium | DSA | Medium | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 243 | Subsets II: Power Set Without Duplicates When Values RepeatMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 244 | Subsets: Generate the Power Set with Include/Exclude BacktrackingMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 245 | Sum of Two Integers: Add Without the Plus or Minus OperatorMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 246 | Surrounded Regions: Capture Enclosed Cells by Flood-Filling from the BorderMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 247 | Swap Nodes in Pairs: Rewire Every Two Nodes With a Dummy HeadMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 248 | Target Sum: Count Sign Assignments with Subset-Sum DPMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 249 | Task Scheduler: Cooldowns with a Max-Heap or a Counting FormulaMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 250 | Time Based Key-Value Store: Versioned Lookups with Binary SearchMedium | DSA | Medium | coding, architecture | LeetCode ↗ (opens in a new tab) | |
| 251 | Top K Frequent Elements: Return the k Most Common ValuesMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 252 | Topological Sort: Order a DAG with Kahn's Algorithm or DFSMedium | DSA | Medium | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 253 | Triplets with Smaller Sum: Count Many Pairs at Once With Two PointersMedium | DSA | Medium | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 254 | Two Sum II: Find a Pair With a Target Sum in a Sorted ArrayMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 255 | Unique Paths: Count Grid Routes with 2D DP or a Binomial CoefficientMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 256 | Valid Parenthesis String: Track a Range of Open Counts GreedilyMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 257 | Valid Sudoku: Check Rows, Columns and Boxes for Repeated DigitsMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 258 | Validate Binary Search Tree: Bounds Recursion and Inorder CheckMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 259 | Word Break: Can a String Be Split into Dictionary Words? Prefix DPMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 260 | Word Search: Trace a Word Through a Letter Grid with DFS BacktrackingMedium | DSA | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 261 | Alien Dictionary: Derive a Letter Order from Sorted Words with Topological SortHard | DSA | Hard | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 262 | Binary Tree Maximum Path Sum: Post-Order Gains with a Global BestHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 263 | Burst Balloons: Interval DP by Choosing the Last Balloon to BurstHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 264 | Find Median from Data Stream: Two Heaps Kept in BalanceHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 265 | First Missing Positive: Cyclic Sort Into Home Slots in O(n) Time, O(1) SpaceHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 266 | IPO: Maximise Capital by Picking the Best Affordable Project Each RoundHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 267 | Largest Rectangle in Histogram: Biggest Area Under the BarsHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 268 | Maximum Frequency Stack: Pop the Most Frequent Value in O(1)Hard | DSA | Hard | coding, architecture | LeetCode ↗ (opens in a new tab) | |
| 269 | Median of Two Sorted Arrays: Partition Binary Search in O(log min(m, n))Hard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 270 | Merge k Sorted Lists: Min-Heap and Divide-and-Conquer SolutionsHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 271 | Minimum Window Substring: Shortest Slice Containing Every Required CharacterHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 272 | N-Queens: Place Non-Attacking Queens Row by Row with BacktrackingHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 273 | Partition Into 2 Subsets with Min Sum Diff: Subset Sum Up to Half the TotalHard | DSA | Hard | coding | GeeksforGeeks ↗ (opens in a new tab) | |
| 274 | Reconstruct Itinerary: Eulerian Path with Hierholzer's AlgorithmHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 275 | Regular Expression Matching: Dot and Star with a 2D DP TableHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 276 | Reverse Nodes in k-Group: In-Place Group Reversal on a Linked ListHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 277 | Serialize and Deserialize Binary Tree: Preorder with Null MarkersHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 278 | Shortest Subarray with Sum at Least K: Prefix Sums and a Monotonic DequeHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 279 | Sliding Window Maximum: Max of Every Window With a Monotonic DequeHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 280 | Sliding Window Median: Two Heaps with Lazy DeletionHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 281 | Smallest Range Covering Elements from K Lists: K-Way Merge with a Min-HeapHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 282 | Split Array Largest Sum: Binary Search on the Largest PartHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 283 | Substring with Concatenation of All Words: Word-Sized Sliding Windows per OffsetHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 284 | Sudoku Solver: Backtracking with Constraint Sets and Smart Cell ChoiceHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 285 | Swim in Rising Water: Minimax Path with a Modified DijkstraHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 286 | Trapping Rain Water: Total Water Held Between Elevation BarsHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 287 | Word Ladder: Shortest Word Transformation with BFS and Wildcard BucketsHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 288 | Word Search II: Find Many Words in a Grid with a Trie and BacktrackingHard | DSA | Hard | coding | LeetCode ↗ (opens in a new tab) | |
| 289 | Consumer lag keeps growing. How do you diagnose and fix it?Medium | Kafka | Medium | debugging, scenario | — | |
| 290 | Explain Kafka partitions and consumer groups.Medium | Kafka | Medium | conceptual, architecture | — | |
| 291 | How do acks, replication factor and min.insync.replicas decide Kafka durability?Medium | Kafka | Medium | conceptual, scenario | — | |
| 292 | How do you choose retention and size disk for a Kafka topic?Medium | Kafka | Medium | architecture, scenario | — | |
| 293 | How do you choose the number of partitions for a Kafka topic?Medium | Kafka | Medium | architecture, scenario | — | |
| 294 | How do you evolve Kafka message schemas safely with a Schema Registry?Medium | Kafka | Medium | conceptual, scenario | — | |
| 295 | How do you handle poison messages and dead-letter topics in Kafka?Medium | Kafka | Medium | scenario, debugging | — | |
| 296 | How does Kafka guarantee message ordering, and where can ordering break?Medium | Kafka | Medium | conceptual, scenario | — | |
| 297 | Kafka vs Kinesis vs a message queue: how do you choose?Medium | Kafka | Medium | architecture, conceptual | — | |
| 298 | What causes consumer group rebalances, and how do you reduce their impact?Medium | Kafka | Medium | debugging, conceptual | — | |
| 299 | What is at-least-once delivery and what problems can it create?Medium | Kafka | Medium | conceptual, scenario | — | |
| 300 | What is Kafka log compaction, and when would you use it?Medium | Kafka | Medium | conceptual, scenario | — | |
| 301 | How would you stream database changes into Kafka with Debezium?Hard | Kafka | Hard | architecture, scenario | — | |
| 302 | What does exactly-once mean in Kafka, and how is it achieved?Hard | Kafka | Hard | conceptual, architecture | — | |
| 303 | When should you avoid Python UDFs in PySpark?Medium | PySpark | Medium | conceptual, optimization | — | |
| 304 | When would you use a broadcast join in Spark?Medium | PySpark | Medium | conceptual, optimization | — | |
| 305 | Explain shallow copy vs deep copy.Easy | Python | Easy | conceptual, debugging | — | |
| 306 | List vs tuple vs set: when would you use each in a data pipeline?Easy | Python | Easy | conceptual | — | |
| 307 | What is a generator and why can it help with large datasets?Easy | Python | Easy | conceptual, coding | — | |
| 308 | Why are mutable default arguments dangerous in Python?Easy | Python | Easy | conceptual, debugging | — | |
| 309 | How should exceptions be handled in production data pipelines?Medium | Python | Medium | conceptual, scenario | — | |
| 310 | How would you add retries with backoff to API ingestion in Python?Medium | Python | Medium | coding, scenario | — | |
| 311 | How would you process a 50 GB CSV file on a machine with 8 GB of RAM?Medium | Python | Medium | scenario, coding | — | |
| 312 | When would you not use pandas in a data pipeline?Medium | Python | Medium | conceptual, scenario | — | |
| 313 | Why are dict and set lookups O(1) in Python, and when are they not?Medium | Python | Medium | conceptual, optimization | — | |
| 314 | What are Snowflake virtual warehouses?Easy | Snowflake | Easy | conceptual | — | |
| 315 | What caches does Snowflake use, and when does each one help?Easy | Snowflake | Easy | conceptual, scenario | — | |
| 316 | What is the difference between Snowflake Time Travel and Fail-safe?Easy | Snowflake | Easy | conceptual, scenario | — | |
| 317 | What is zero-copy cloning in Snowflake, and how would you use it?Easy | Snowflake | Easy | conceptual, scenario | — | |
| 318 | How do micro-partitions affect Snowflake query performance?Medium | Snowflake | Medium | conceptual, optimization | — | |
| 319 | How do you build an incremental pipeline with Snowflake streams and tasks?Medium | Snowflake | Medium | architecture, coding | — | |
| 320 | Should you scale a Snowflake warehouse up or out?Medium | Snowflake | Medium | optimization, scenario | — | |
| 321 | When should you define a clustering key on a Snowflake table?Medium | Snowflake | Medium | optimization, scenario | — | |
| 322 | What is the difference between a transformation and an action in Spark?Easy | Apache Spark | Easy | conceptual | — | |
| 323 | Explain Spark jobs, stages and tasks.Medium | Apache Spark | Medium | conceptual | — | |
| 324 | How does partition count affect Spark performance?Medium | Apache Spark | Medium | optimization, conceptual | — | |
| 325 | What causes a shuffle in Spark?Medium | Apache Spark | Medium | conceptual | — | |
| 326 | What is data skew and how can you mitigate it?Hard | Apache Spark | Hard | optimization, debugging | — | |
| 327 | Explain INNER JOIN vs LEFT JOIN with a practical example.Easy | SQL | Easy | conceptual, coding | — | |
| 328 | Find customers who never placed an order, and explain NOT IN vs NOT EXISTS.Easy | SQL | Easy | coding, debugging | LeetCode ↗ (opens in a new tab) | |
| 329 | How do window functions differ from GROUP BY?Easy | SQL | Easy | conceptual, coding | — | |
| 330 | Average Order Value: SQL Case Study with 8 ApproachesMedium | SQL | Medium | coding, optimization, scenario | — | |
| 331 | Customer Lifetime Value: SQL Case Study with 8 ApproachesMedium | SQL | Medium | coding, optimization, scenario | — | |
| 332 | Daily Active Users: SQL Case Study with 8 ApproachesMedium | SQL | Medium | coding, optimization, scenario | — | |
| 333 | Find the second-highest salary without using a simple MAX approach.Medium | SQL | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 334 | How would you detect and remove duplicate records safely?Medium | SQL | Medium | coding, scenario | LeetCode ↗ (opens in a new tab) | |
| 335 | Lead Scoring: SQL Case Study with 7 ApproachesMedium | SQL | Medium | coding, scenario, optimization | — | |
| 336 | New vs Returning Customers: SQL Case Study with 8 ApproachesMedium | SQL | Medium | coding, optimization, scenario | — | |
| 337 | Refund Analysis: SQL Case Study with 7 ApproachesMedium | SQL | Medium | coding, optimization, scenario | — | |
| 338 | Return the top three salaries in each department, including ties.Medium | SQL | Medium | coding | LeetCode ↗ (opens in a new tab) | |
| 339 | Revenue doubled after you joined a second table. What happened and how do you fix it?Medium | SQL | Medium | debugging, coding | — | |
| 340 | Session Duration: SQL Case Study with 8 ApproachesMedium | SQL | Medium | coding, optimization, scenario | — | |
| 341 | Subscription Renewals: SQL Case Study with 7 ApproachesMedium | SQL | Medium | coding, optimization, scenario | — | |
| 342 | Top Selling Products: SQL Case Study with 8 ApproachesMedium | SQL | Medium | coding, optimization, scenario | — | |
| 343 | A/B Test Results: SQL Case Study with 7 ApproachesHard | SQL | Hard | coding, scenario, optimization | — | |
| 344 | Churn Rate: SQL Case Study with 8 ApproachesHard | SQL | Hard | coding, optimization, scenario | — | |
| 345 | Conversion Funnel: SQL Case Study with 8 ApproachesHard | SQL | Hard | coding, optimization, scenario | — | |
| 346 | Employee Hierarchy: SQL Case Study with 8 ApproachesHard | SQL | Hard | coding, optimization, scenario | — | |
| 347 | Fraud Pattern Detection: SQL Case Study with 8 ApproachesHard | SQL | Hard | coding, optimization, scenario | — | |
| 348 | How would you optimize a slow analytical SQL query?Hard | SQL | Hard | optimization, scenario | — | |
| 349 | Inventory Turnover: SQL Case Study with 8 ApproachesHard | SQL | Hard | coding, optimization, scenario | — | |
| 350 | Monthly Revenue: SQL Case Study with 8 ApproachesHard | SQL | Hard | coding, optimization, scenario | — | |
| 351 | Write an SCD Type 2 upsert in SQL that closes old versions and inserts new ones.Hard | SQL | Hard | coding, scenario | — | |