最大序列和 题解:
这个代码为啥输出不正确啊,求大佬指点
#include<stdio.h>
int main()
{
long long n,i;
long long a[1000000];
while(scanf("%lld",&n)!=EOF)
{
long long sum=0;
long long max=0;
for(i=0;i<n;i++)
{
scanf("%lld",&a[i]);
}
for(i=0;i<n;i++)
{
if(a[i]>=0)
{
sum=sum+a[i];
}
&nb...
登录后发布评论
不是用a[i]的正负来判断加不加,因为当前为负,后面可能正的更大,那么还是应该加上去。
所以应该先加到sum上,然后通过sum的正负来判断是否要清0,然后记录sum变化过程中最大值即可。