data structures and algorithms, leetcode's interview crash course, leetcode.com