Maximum Contiguous Subarray Dynamic Programming And Memoization