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