int maxcmp(int a, int b) { return a >= b ? a : b; } int maxSubArray(int *nums, int numsSize) { int maxSoFar = nums[0], maxEndingHere = nums[0]; for (int i = 1; i < numsSize; i++) { maxEndingHere = maxcmp(maxEndingHere + nums[i], nums[i]); maxSoFar = maxcmp(maxSoFar, maxEndingHere); } return maxSoFar; }