求最大子列和
当sum<0时,相较于加上先前的sum包含的数据,舍弃可以使后续的值更大
所以就线性的下去
#include <iostream>
using namespace std;
int main() {
int a, b;
long long max, sum;
while (cin >> a) {
max = 0;
sum = 0;
for (int i = 0; i < a; i++) {
cin >> b;
sum += b;
if (sum > max)
max = sum;
if (sum < 0)
sum = 0;
}
cout << max << endl;
}
}