动规求最大一维连续子数组,f[i] 表示以i结尾的子数组和。4ms
#define MAX(a, b) ((a) > (b) ? (a) : (b))
int maxSubArray(int* nums, int numsSize) {
int* f = malloc(sizeof(int) * numsSize);
int i, res = f[0] = nums[0];
for (i = 1 ; i < numsSize ; i++) {
f[i] = MAX(f[i-1] + nums[i], nums[i]);
res = MAX(f[i], res);
}
free(f);
return res;
}