给定一个整数数组 nums
,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
int a[30000] = { 0 };
int max(int a, int b) {
if (a >= b) {
return a;
}
else return b;
}
int maxSubArray(int* nums, int numsSize) {
a[0] = nums[0];
for (int i = 1; i < numsSize; i++) {
a[i] = max(nums[i], a[i - 1] + nums[i]);
}
int max = a[0];
for (int i = 0; i < numsSize; i++) {
if (max < a[i]) {
max = a[i];
}
}
return max;
}