add maximum subarray algorithm