Data Structures & Algorithms

Pattern-based problem solving — arrays to graphs, for interviews and daily fundamentals.

Data structures and algorithms are the reusable ways of organizing data and the step-by-step procedures for working with it — the vocabulary that lets you recognize a new problem as a known shape instead of solving it from scratch every time.

Difficulty
beginner
Time
30+ hours
Sections written
4

Why it matters

  • Nearly every technical interview tests this directly, independent of any specific language or framework.
  • The same handful of patterns — two pointers, sliding window, hashing, BFS/DFS, dynamic programming — solve a huge share of real problems once recognized.
  • Choosing the right data structure is usually what turns a slow, timing-out solution into a fast one, more often than any low-level optimization.
  • It builds the complexity vocabulary (Big-O) used to reason about any other topic here, from a database query plan to an API's response time.

Where it is used

  • Technical interviews and coding assessments
  • Performance-sensitive application code — search, filtering, deduplication, ranking
  • Systems work — scheduling, caching, routing — that leans directly on named data structures
  • Competitive programming and algorithm-focused coursework

The big picture

How the pieces fit together
choosescombine intoarejudged by

Problem-solving process

restate, size up, trace

Data structures

array, hash map, tree, heap, graph

Patterns

two pointers, sliding window, BFS/DFS, DP

Complexity

Big-O — what "fast enough" means

  • Problem-solving process — restate, size up, trace
    • leads to Data structures (chooses)
  • Data structures — array, hash map, tree, heap, graph
    • leads to Patterns (combine into)
  • Patterns — two pointers, sliding window, BFS/DFS, DP
    • leads to Complexity (are judged by)
  • Complexity — Big-O — what "fast enough" means

Sections

  1. How to Think About a Problembeginner45 min
  2. Big-O and Complexity Analysisbeginner95 min
  3. Arrays and Listsbeginner110 min
  4. Stringsbeginner90 min
  5. Hashing — Hash Maps and Sets14 items
  6. Two Pointers6 items
  7. Sliding Window7 items
  8. Recursion12 items
  9. Sorting Algorithms15 items
  10. Searching and Binary Search10 items
  11. Stacks8 items
  12. Queues and Deques7 items
  13. Linked Lists11 items
  14. Trees12 items
  15. Tree Traversals8 items
  16. Heaps and Priority Queues13 items
  17. Graphs — Fundamentals11 items
  18. Graph Traversal — BFS and DFS11 items
  19. Weighted Graphs — Intermediate Ceiling4 items
  20. Greedy Algorithms8 items
  21. Dynamic Programming — Foundations11 items
  22. Dynamic Programming — Classic Patterns13 items
  23. Backtracking10 items
  24. Tries, Union-Find, and Bit Manipulation13 items
  25. Math for DSA6 items
  26. Python Standard Library Cheat Sheet for DSA10 items
  27. Complexity Reference — Know These Cold10 items
  28. Time and Space Trade-off Instincts6 items
  29. Pattern Recognition Cheat Sheet18 items
  30. Practice Plan5 items
  31. What a Beginner-to-Intermediate DSA Learner Should Be Able to Do9 items
  32. Final Competency Checklist6 items