||_ 题目描述
||_ 分析
本题的核心是计算出一个序列的所有子序列中元素和为最大时的值,不要求输出对应的子序列是什么,而只要求输出和的最大值是多少。
法一:
我们把序列分成两半(左边和右边),那么和最大的序列要么出现在左边序列,要么出现在右边序列,要么横跨左右两边。而左边序列又可以分成两半,以此类推;右边序列也一样。由此,便可分而治之了。下面是代码:
int maxSubArray(int* nums, int numsSize) {
return findMax(nums,0,numsSize-1);
}
int findMax(