https://medium.com/programmers-career/leetcode-53-golang-maximum-subarray-medium-dynamic-programming-2745489e4e7c