Beginner
Arrays
Core operations, two-pointer patterns, sliding window and binary search — foundation for many
interview problems.
Pattern: Two PointersDifficulty: Easy→MediumTime: 1–2
weeks
Read more »
Start with traversal, indexing and basic sorting. Practice problems: two-sum variants, subarray sums, sliding
window (max subarray), merge sorted arrays. Project idea: build a small analytics dashboard that computes
rolling aggregates (moving average, max-window) to connect arrays with real data.
Beginner
Strings
Manipulation, parsing, pattern matching and hashing. Important for text-processing tasks and
many coding questions.
Pattern: Sliding Window, HashDifficulty: Easy→MediumTime: 1
week
Read more »
Common tasks: reverse, rotate, find substrings, anagram detection, palindrome checks, and
regex-like parsing. Build exercises: detect repeated substrings, implement strstr, and design a small
tokenizer for CSV-like input.
Intermediate
Linked Lists
Pointers and memory-shape problems — helpful for understanding low-level data movement and
in-place algorithms.
Pattern: Fast & Slow PointersDifficulty: Easy→MediumTime: 1
week
Read more »
Implement list operations from scratch: insertion, deletion, reverse, detect cycles (Floyd’s),
merge sorted lists. Interview tip: write clean pointer diagrams before you code.
Intermediate
Stacks & Queues
LIFO and FIFO structures used in parsing, backtracking and level-order traversals.
Pattern: Monotonic StackDifficulty: EasyTime: 3–5 days
Read more »
Use cases: expression evaluation, browser history (stack), sliding window (deque). Practice
monotonic stack problems: next greater element, largest rectangle in histogram.
Intermediate
Trees & BSTs
Tree traversals, recursion, balanced trees and binary search trees — essential for hierarchical
data and search operations.
Pattern: DFS/BFSDifficulty: MediumTime: 1–2 weeks
Read more »
Practice traversal variants (pre/in/post-order), level-order, find LCA, serialize/deserialize
tree. Advanced: segment trees, AVL/Red-Black trees for balanced operations.
Advanced
Graphs
Model relations and networks — learn traversal, connectivity, and optimization algorithms.
Pattern: BFS/DFS, DijkstraDifficulty: Medium→HardTime: 2–3
weeks
Read more »
Key topics: directed vs undirected, weighted graphs, shortest path (Dijkstra/Bellman-Ford),
MST (Kruskal/Prim), topological sort, SCCs. Build: route planner or recommendation graph to apply concepts.
Advanced
Dynamic Programming
Train state design, overlapping subproblems, and optimization strategies — a must for many hard
problems.
Pattern: Memoization/TabulationDifficulty: Medium→HardTime:
3–4 weeks
Read more »
Start with classic problems (Fibonacci variants, knapsack, LIS). Learn to identify DP states
and transitions. Tip: draw DP tables and reduce dimensions when possible.
Expert
Advanced Data Structures
Fenwick trees, Segment trees, Tries, Suffix arrays and advanced hashing techniques.
Pattern: Range QueriesDifficulty: HardTime: 2+ weeks
Read more »
These structures help with efficient range queries and updates — useful in competitive
programming and high-performance systems. Implement them and apply to frequency/range sum problems.
System
System Design Basics
Intro to scalability, caching, and data partitioning — useful when moving from algorithms to
building real systems.
Pattern: Scale & CacheDifficulty: MediumTime: 1–2 weeks
Read more »
Practice: design a URL shortener, chat service or image store. Focus on APIs, data models,
scaling strategies (sharding, caching) and trade-offs.