这是原代码:
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 10;
int n, a[MAXN], s[MAXN], minn = INT_MAX, mx[MAXN], ans = INT_MIN;
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
s[i] = s[i - 1] + a[i];
}
mx[1] = s[1];
minn = min(minn, s[1]);
for (int i = 2; i <= n; i++) {
mx[i] = s[i] - minn;
minn = min(minn, s[i]);
}
for (int i = 1; i <= n; i++)
ans = max(ans, mx[i]);
cout << ans;
}
错 #1 这个点,将 minn 初值改为 0 就过了,为什么?