All paths
PythonIntermediate

Algorithms and Data Structures

Algorithms and data structures to ace technical interviews: complexity, arrays, hash maps, trees, graphs, dynamic programming. BigTech-style problems, runnable in the browser.

14 chapters56 lessons52 challenges

Course curriculum

Chapter 1: Complexity (Big-O)

  • Why complexity matters
  • Big-O notation
  • Space complexity
  • Analyzing an algorithm

Chapter 2: Arrays and strings

  • Arrays
  • Two pointers
  • Sliding window
  • String tricks

Chapter 3: Hash maps and sets

  • The hash map
  • Counting frequencies
  • The set: membership and duplicates
  • The complement pattern

Chapter 4: Stacks and Queues

  • The stack (LIFO)
  • The queue (FIFO) and the deque
  • Balanced brackets
  • Evaluating with the stack

Chapter 5: Linked Lists

  • What a linked list is
  • Traversing and operating
  • Reversing a linked list
  • Fast & slow pointers

Chapter 6: Trees

  • Binary trees
  • Traversals (DFS)
  • The BST
  • BFS and depth

Chapter 7: Heaps and Priority Queues

  • What a heap is
  • heapq in Python
  • Top-K problems
  • The priority queue

Chapter 8: Graphs

  • What a graph is
  • BFS on graphs
  • DFS on graphs
  • Graph applications

Chapter 9: Recursion and backtracking

  • Recursion
  • Thinking recursively
  • Backtracking
  • Generating subsets

Chapter 10: Binary search

  • Binary search
  • The implementation
  • Variants and bisect
  • Binary search on the answer

Chapter 11: Dynamic programming

  • What dynamic programming is
  • Memoization (top-down)
  • Tabulation (bottom-up)
  • Classic DP problems

Chapter 12: Greedy algorithms

  • What a greedy algorithm is
  • When greedy works
  • Greedy examples
  • Greedy vs DP

Chapter 13: Interview patterns

  • Recognizing the pattern
  • The main patterns
  • Approaching a problem
  • Communicating in the interview

Chapter 14: Interview problems

  • Sliding window in action
  • Interval problems
  • Interview checklist
  • Next steps

Ready to level up?

Create a free account and start now: earn XP on every challenge and climb the leaderboard.

Algorithms and Data Structures — LevelUpCode