01-复杂度1 最大子列和问题
#include <cstdio>
const int MAXN = 1e5 + 2;
int MaxSubseqSum(int a[], int n) {
int ThisSum = 0, MaxSum = 0;
for (int i=0; i<n; i++) {
ThisSum += a[i];
if (ThisSum > MaxSum) {
MaxSum = ThisSum;
}
else if (ThisSum < 0) {
ThisSum = 0;
}
}
return MaxSum;
}
int main() {
int k, a[MAXN];
scanf("%d", &k);
for (int i=0; i<k; i++) {
scanf("%d", &a[i]);
}
int MaxSum = MaxSubseqSum(a, k);
printf("%d\n", MaxSum);
return 0;
}

浙公网安备 33010602011771号