Maximum Subarray Sum Dynamic Programming Algorithm