https://medium.com/@stevenbrunoqst/leetcode-algorithm-dynamic-programming-1-type1-basic-config-604043d6f54e