adds algo to calculate max_subarray in linear time