Chapter 1. Introduction to Algorithms
Algorithm running times grow at different rates
Visualizing different Big O run times
Chapter 6. Breadth-first Search
Chapter 7. Dijkstra’s algorithm
The classroom scheduling problem
Chapter 9. Dynamic programming
What happens if you change the order of the rows?
Can you fill in the grid column-wise instead of row-wise?
What happens if you add a smaller item?
Can you steal fractions of an item?
Optimizing your travel itinerary
Handling items that depend on each other
Is it possible that the solution will require more than two sub-knapsacks?
Is it possible that the best solution doesn’t fill the knapsack completely?
Chapter 10. K-nearest neighbors
Classifying oranges vs. grapefruit
Building a recommendations system
Introduction to machine learning