https://leetcode.com/problems/maximum-subarray/
MaxValue[n]: 当子数组最后一个元素为n时,子数组求和能够达到的最大值。
Value[n]: 第n个元素的值。
递推式
MaxValue[n] = max( MaxValue[n-1] + Value[n] , Value[n])
题解样例
int maxSubArray(int* nums, int numsSize) {
int i = 0;
int maxValue;
int curMax;
for (i = 0; i < numsSize; i++) {
if (i == 0) {
curMax = nums[0];
maxValue = nums[0];
continue;
}
if (curMax > 0) {
curMax = curMax + nums[i];
} else {
curMax = nums[i];
}
if (curMax > maxValue) {
maxValue = curMax;
}
}
return maxValue;
}