Dynamic Programming for Coding Interviews