add another O(n) solution for max subarray