题解 | #连续子数组最大和#
连续子数组最大和
http://www.nowcoder.com/practice/1718131e719746e9a56fb29c40cc8f95
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int res = arr[0];
for (int i = 1; i < n; i++) {
// 相当于如果前面的数比0小,那么就只按照当前值计算,并记录下来在这之前连续子数组的最大和
arr[i] += max(arr[i - 1], 0);
res = max(res, arr[i]);
}
cout << res << endl;
return 0;
}