The Practice Engine

Practice
Like a Staff Engineer.

Your Progress HubSaved locally in your browser

0 / 182 Challenges Mastered

Ready to begin your Staff Engineer journey? Let's solve your first challenge!

Easy
0 / 33
0% Done
Medium
0 / 80
0% Done
Hard
0 / 69
0% Done
182 PROBLEMS
StatusChallengeDifficultyRevisionTopicsCodePracticeNotes
Dynamic Programming in Java: Demystifying the 0/1 Knapsack PatternHard
Pattern Blueprint: The Backtracking Master TemplateMedium
Pattern Blueprint: The Monotonic Stack TemplateMedium
Pattern Blueprint: The Universal Sliding Window TemplateMedium
Pattern Blueprint: The Two Pointers Master TemplateMedium
DSA Masterclass: Dijkstra’s vs. Bellman-Ford (Shortest Path Algorithms)Hard
Binary Search: Curated Practice ProblemsMedium
DSA Masterclass Module 12: Binary Search PatternsEasy
System Design Module 8: CAP Theorem & Consistency ModelsHard
DSA Complexity: Curated Practice ProblemsEasy
System Design Module 6: Database Design (SQL vs NoSQL)Medium
Dynamic Programming: Curated Practice ProblemsMedium
The Dynamic Programming Masterclass: Tabulation, Memoization, and StateHard
Graphs: Curated Practice ProblemsMedium
The Graph Mastery Blueprint: BFS, DFS, and RepresentationMedium
DSA Masterclass Module 11: Greedy AlgorithmsMedium
Greedy Algorithms: Curated Practice ProblemsMedium
Heaps: Curated Practice ProblemsMedium
DSA Masterclass Module 13: Heaps & Priority QueuesMedium
Lesson: The FAANG Interview ChecklistEasy
DSA Masterclass Module 15: Mock Interviews & StrategyEasy
Linked List Deep Dive: Memory, References, and PointersMedium
Linked Lists: Curated Practice ProblemsMedium
LLD Design Patterns: Curated Practice ProblemsMedium
LLD Masterclass: Curated Practice ProblemsMedium
DSA Masterclass Module 2: The Problem Solving MindsetEasy
Recursion & Backtracking: Curated Practice ProblemsMedium
Mastering Recursion: The Three Laws and the Decision TreeMedium
Sliding Window Pattern: Curated Practice ProblemsMedium
Stack & Queue: Curated Practice ProblemsMedium
DSA Masterclass Module 6: Stack, Queue & Monotonic StackEasy
DSA Masterclass Module 1: Time & Space ComplexityEasy
Trees: Curated Practice ProblemsMedium
The Binary Tree Masterclass: BFS, DFS, and Structural IntuitionMedium
Tries: Curated Practice ProblemsHard
DSA Masterclass Module 14: Tries & Advanced StructuresHard
Arrays & Two Pointers: Curated Practice ProblemsMedium
Lesson: How to Explain DSA SolutionsEasy
DSA Masterclass: The Bitmasking & XOR BlueprintHard
Merge Intervals Pattern in Java: Conquer Overlapping Subarrays EfficientlyMedium
Company Playbook: The Google 15Hard
Company Playbook: The Meta 15Hard
3Sum - Finding Unique TripletsMedium
8: Alien Dictionary (Hard)Hard
15: Basic Calculator II (Hard)Hard
Binary Search (Easy)Easy
Binary Tree In-order Traversal (Easy)Easy
Binary Tree Level Order TraversalMedium
29: Burst Balloons (Hard)Hard
Coin ChangeMedium
Combination SumMedium
Container With Most Water (Medium)Medium
46: Count Vowels Permutation (Hard)Hard
Course Schedule (Topological Sort)Medium
43: Cut Off Trees for Golf Event (Hard)Hard
Daily Temperatures (Monotonic Stack)Medium
42: Design In-Memory File System (Hard)Hard
39: Design Search Autocomplete System (Hard)Hard
13: Edit Distance (Hard)Hard
24: Employee Free Time (Hard)Hard
34: Find Median from Data Stream (Hard)Hard
27: First Missing Positive (Hard)Hard
Flood Fill (Easy)Easy
Group AnagramsMedium
33: Insert Interval (Hard)Hard
Jump GameMedium
Koko Eating Bananas (Search on Answer)Medium
Kth Largest Element in an ArrayMedium
14: K-th Smallest in Lexicographical Order (Hard)Hard
26: Largest Rectangle in Histogram (Hard)Hard
16: LFU Cache Design (Hard)Hard
Linked List Cycle (Easy)Easy
22: Longest Increasing Path in a Matrix (Hard)Hard
Longest Increasing SubsequenceMedium
Longest Substring with K Distinct CharactersMedium
11: Longest Valid Parentheses (Hard)Hard
Lowest Common Ancestor of a Binary TreeMedium
5: LRU Cache Design (Hard)Hard
41: Making A Large Island (Hard)Hard
Maximum Sum Subarray of Size KEasy
25: Maximal Rectangle (Hard)Hard
45: Maximize Score After N Operations (Hard)Hard
Maximum Depth of Binary TreeEasy
35: Maximum Profit in Job Scheduling (Hard)Hard
2: Median of Two Sorted Arrays (Expert)Hard
Meeting Rooms (Interval Scheduling)Easy
Merge IntervalsMedium
4: Merge K Sorted Lists (Hard)Hard
23: Minimum Window Subsequence (Hard)Hard
37: Minimum Number of K Consecutive Bit Flips (Hard)Hard
Minimum Window SubstringHard
Move Zeroes (Easy)Easy
12: N-Queens (Hard)Hard
Analyze Nested LoopsEasy
Next Greater Element IMedium
Number of 1 Bits (Easy)Easy
Number of Islands (DFS/BFS)Medium
38: Palindrome Pairs (Hard)Hard
48: Parallel Courses III (Hard)Hard
PermutationsMedium
49: Prefix and Suffix Search (Hard)Hard
44: Race Car (Hard)Hard
Range Sum Query (Easy)Easy
Analyze Recursive DepthEasy
31: Regular Expression Matching (Hard)Hard
Remove Duplicates from Sorted Array (In-Place)Easy
7: Reverse Nodes in k-Group (Hard)Hard
Reverse a Linked ListEasy
Search in Rotated Sorted ArrayMedium
36: Serialize and Deserialize BST (Hard)Hard
21: Serialize and Deserialize Binary Tree (Hard)Hard
50: Sliding Puzzle (Hard)Hard
6: Sliding Window Maximum (Hard)Hard
30: Smallest Range Covering Elements from K Lists (Hard)Hard
10: Sudoku Solver (Hard)Hard
40: Swim in Rising Water (Hard)Hard
1: Trapping Rain Water (Hard)Hard
9: Binary Tree Maximum Path Sum (Hard)Hard
Two Sum II: Input Array Is Sorted (Two Pointers)Easy
Valid Anagram (Easy)Easy
47: Valid Arrangement of Pairs (Hard)Hard
Valid Palindrome (Easy)Easy
Valid ParenthesesEasy
Validate Binary Search TreeMedium
32: Word Break II (Hard)Hard
17: Word Ladder (Hard)Hard
28: Word Ladder II (Hard)Hard
3: Word Search II (Hard)Hard
The Sliding Window Pattern: Eliminating Redundant CalculationsMedium
Tree Traversals in Java: Mastering BFS and DFS for Coding InterviewsEasy
Trie (Prefix Tree) in Java: The Ultimate Data Structure for String ProblemsHard
The Two Pointers Pattern: Mastering Linear Array OptimizationsMedium
Centroid Decomposition in Java: Solving Tree Path ProblemsMedium
Heavy-Light Decomposition in Java: Optimizing Tree QueriesHard
Link-Cut Trees in Java: Dynamic Tree ConnectivityHard
Suffix Automaton in Java: The Ultimate String Data StructureMedium
AVL Trees: Self-Balancing Binary Search TreesMedium
The 'Small Files' Problem in Data Lakes: Why Your Kafka Sink is SlowEasy
Kosaraju's Algorithm for Strongly Connected ComponentsHard
Manacher's Algorithm in Java: Linear Time Palindrome SearchMedium
Mo's Algorithm: Offline Range QueriesHard
Red-Black Trees in Java: The Engine Behind TreeMap and HashMapMedium
Segment Tree Data Structure: Efficient Range QueriesMedium
Skip Lists in Java: The Probabilistic Alternative to Balanced TreesMedium
System Design: Solving the Top K Problem (Heavy Hitters)Hard
Tarjan's Algorithm in Java: Finding Strongly Connected ComponentsMedium
Trie (Prefix Tree) Data Structure - Java Implementation and Use CasesMedium
A* Search Algorithm in Java: Heuristic PathfindingEasy
B-Trees and B+ Trees in Java: The Engines of Modern DatabasesHard
Backtracking Pattern in Java: Permutations and CombinationsMedium
Bellman-Ford Algorithm in Java: Shortest Paths with Negative WeightsMedium
Bloom Filters in Java: Probabilistic Data StructuresMedium
Boyer-Moore Voting Algorithm in Java: Finding the Majority ElementMedium
Dijkstra's Algorithm in Java: Finding the Shortest PathMedium
Fenwick Trees (Binary Indexed Trees) in JavaMedium
Floyd-Warshall Algorithm in Java: All-Pairs Shortest PathsMedium
Huffman Coding in Java: Lossless Data CompressionHard
Kadane's Algorithm in Java: Maximum Sum SubarrayMedium
Kruskal's Algorithm in Java: Finding the Minimum Spanning TreeEasy
Longest Common Subsequence (LCS) in Java: Dynamic Programming GuideEasy
Lowest Common Ancestor (LCA) in Java: Binary Trees and DAGsHard
LRU Cache Implementation in Java: $O(1)$ StrategyMedium
Matrix Traversal in Java: Spiral, Diagonal, and Flood FillMedium
N-Queens Problem in Java: Solving Constraints with BacktrackingHard
Prim's Algorithm in Java: Minimum Spanning Tree via Greedy GrowthMedium
Rabin-Karp Algorithm in Java: Efficient String Searching with HashingMedium
Sudoku Solver in Java: Efficient Backtracking and PruningMedium
Suffix Arrays and Suffix Trees in Java: Advanced String StructuresHard
Z-Algorithm in Java: Linear Time String MatchingHard
BFS (Breadth First Search) in Java: Level-Order and Shortest PathMedium
Big-O Notation in Java: Time and Space Complexity for Interview Problem SolvingEasy
Binary Search Pattern in Java: Efficiently Searching Sorted DataEasy
DFS (Depth First Search) in Java: Tree and Graph TraversalsMedium
Dutch National Flag Pattern in Java: Efficient Three-Way PartitioningMedium
Fast & Slow Pointers in Java: Detecting Cycles and Finding Middle ElementsMedium
In-place Reversal of a Linked List in Java: Efficient Memory ManagementMedium
Monotonic Queue Pattern in Java: Efficiently Solving Sliding Window MaximumMedium
Monotonic Stack Pattern in Java: Efficiently Finding Next Greater/Smaller ElementsMedium
Prefix Sum Pattern in Java: Efficiently Calculate Range Sums and Subarray PropertiesMedium
Sorting Algorithms in Java: QuickSort, MergeSort, and HeapSort ExplainedMedium
Topological Sort in Java: Handling Dependencies with Kahn's AlgorithmMedium
Union Find (DSU) in Java: Connectivity and Cycle DetectionMedium