Google Interview Question

A difficult question (LeetCode Hard) that involved dynamic programming with memoization.