https://runestone.academy/runestone/books/published/pythonds...
Grokking Algorithms
Classic Computer Science Problems in Python