Questions
Master essential algorithms and data structures through curated problems. Progress from fundamentals to advanced topics with a proven learning path covering 17 key categories.
Arrays & Hashing
Master array manipulation and hash table techniques. Foundation patterns for solving complex algorithmic problems efficiently.
Two Pointers
Learn efficient array and string manipulation using the two-pointer technique. Essential for optimizing solutions from O(n²) to O(n).
Stack
Master stack-based problem solving including monotonic stacks, expression evaluation, and parenthesis matching.
Binary Search
Master the binary search algorithm and its variations. Learn to solve problems in O(log n) time complexity.
Sliding Window
Learn to optimize subarray and substring problems using the sliding window technique for linear time solutions.
Linked List
Master linked list manipulation including reversal, cycle detection, merging, and pointer techniques.
Trees
Build expertise in tree traversals, binary search trees, and tree manipulation. Foundation for advanced graph algorithms.
Tries
Learn trie (prefix tree) data structures for efficient string operations and word search problems.
Backtracking
Learn recursive backtracking for solving constraint satisfaction and combinatorial problems.
Heap / Priority Queue
Master heap data structures and priority queues for efficient top-K problems and scheduling algorithms.
Graphs
Master graph traversal algorithms (DFS, BFS), cycle detection, and connected component problems.
1D Dynamic Programming
Build dynamic programming foundations with 1D array problems. Essential preparation for complex DP patterns.
Intervals
Master interval problems including merging, scheduling, and overlap detection. Common in meeting room scenarios.
Greedy
Learn greedy algorithms for optimization problems. Make locally optimal choices to find global solutions.
Advanced Graphs
Advanced graph algorithms including topological sort, union find, and Eulerian paths.
2D Dynamic Programming
Advanced dynamic programming with 2D arrays and matrices. Master complex state transitions and optimizations.
Bit Manipulation
Master bitwise operations and bit manipulation tricks. Essential for low-level optimization and clever solutions.