0%

连续子数组的最大和

计算连续子向量的最大和,向量中包含负数。例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1)

连续累加,小于0了则归零。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public:
int FindGreatestSumOfSubArray(vector<int> array) {
int sum = 0;
int max_sum = INT_MIN;
for (const int number : array)
{
if (sum < 0)
{
sum = 0;
}
sum += number;
if (sum > max_sum)
{
max_sum = sum;
}
}
if (max_sum == INT_MAX)
{
max_sum = 0;
}
return max_sum;
}
};