给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。
#include <iostream>
#include "vector"
using namespace std;
/**
* kkmd66 四刷
* @return
*/
int main() {
int n;
while (cin >> n && n != 0) {
//存储该序列
vector<int> vector(n);
for (int i = 0; i < n; ++i) {
cin >> vector[i];
}
//依次遍历序列,找加和最大子串
long long max = vector[0];
for (int i = 0; i < vector.size(); ++i) {
//每个序列起始开始加和
long long sum = 0;
for (int j = i; j < vector.size(); ++j) {
sum += vector[j];
if (sum > max)
max = sum;
}
}
cout << max << endl;
}
return 0;
}