refact code for max subarray