0
0
0
情况1:当前的是正数(正能量)a[i]>0;
s+a[i]>0; 传下去 s=s+a[i];
情况2:当前的是负能量 a[i]<0,如果if(s+a[i]>0) 传递来的正能量
能够吸收负能量,总能量s还是正的,继续传s=s+a[i];如果if(s+a[i]<0)当前的
负能量太大,无法被吸收,直接把s清0(传递给下一个数一定是正的或者0)
for(i=1;i<=n;i++)//处理每一个能量
{
if(s+a[i]>ans)//先判断ans-当前的和>ans
ans=s+a[i]; //ans赋值
if(s+a[i]>0) //传递过来的s+自己还是正能量
s=s+a[i];//继续正能量传下去
else s=0;//负能量过大,直接清0
/*if(s>ans)***错误因为负的s=0,则有可能s>ans ans=0
ans=s;*/
}
0
0
0
0
0