例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和
思路:
一个数之前的和是正的,则加上这个数。判断此时的和与最大和比较,大于就赋给最大和变量,如果一个数之前的和是负的,此时和是这个数。
class Solution {
public:
int FindGreatestSumOfSubArray(vector<int> array) {
int i=0;
int sum=array[0];
int max=array[0];
for(i=1;i<array.size();i++){
if(sum>=0)
sum+=array[i];
else
sum=array[i];
if(sum>max)
max=sum;
}
return max;
}
};