子串和

来源:互联网 发布:数据口径是什么意思 编辑:程序博客网 时间:2024/06/05 15:00

题目:给定一整型数列{a1,a2…,an},找出连续非空子串{ax,ax+1,…,ay},使得该子序列的和最大,其中,1<=x<=y<=n。
思路:当子串和为负数的时候,开始从新计算之后子串的和。

#include<stdio.h>int main(){     int n,m,i,max,sum;    scanf("%d",&n);    while(n--)    {        max=0;        scanf("%d",&m);          scanf("%d",&sum);         max=sum;         while(--m)          {             scanf("%d",&i);              if(sum<0)    sum=i;            else    sum+=i;              if(sum>max)    max=sum;          }         printf("%d\n",max);    }}
原创粉丝点击