题目
答案
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[n],i,j;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
int sum=0,max=0;
for(i=0;i<n;i++)
{
sum+=a[i];
if(sum<0) sum=0;
if(sum>max) max=sum;
}
printf("%d",max);
}
核心思路
如果sum小于0,说明它对于最大子列和毫无贡献,那就把它归为0