最大子段和

来源:互联网 发布:java面试题及答案 编辑:程序博客网 时间:2024/05/20 18:16

Description

已知有一个序列{Ai},其中都是整数,但不一定为正数,请求出其中连续的一段子串,使得这个子串的所有值相加的和最大,子串不允许为空。

Input

有多组数据,每组数包含两行,第一行有1个正整数数N(1<=N<=100),代表序列中数字的个数,第二行有N个数字(每个数字的范围为[-100 ,100])。

Output

最大的子串和

Sample Input

2
-3 -2
8
4 -2 -4 3 3 1 -1 8

Sample Output

-2
14

Source

[p][/p]

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int main(){    int n,sum,max,i,t;    while(~scanf("%d",&t))    {        sum=0,max=-100001;        for(i=0;i<t;i++)        {            scanf("%d",&n);            sum+=n;            if(sum>max)max=sum;            if(sum<0)sum=0;        }        printf("%d\n",max);    }    return 0;}


原创粉丝点击