第4题 部分和4连续子续列最大和 时限:1s 空间:256m
连续子续列最大和(a)
输入一个长度为n的整数序列(A1,A2,…,An),每个Ai的取值范围均在-50到50之间,从中找出一段连续的子序列,使得这个序列的和最大。
输入格式:
第一行,n(n<=1000);
第二行n个整数。
输出格式:
一个整数,表示连续子序列的最大和。
输入样例:
5
1 2 -4 3 5
输出样例:
8
程序:
#include<bits/stdc++.h>
using namespace std;
int n,t[1009],s[1009],ans=-10000; //定义一个负数变量用来比大小
int main()
{
cin>>n; //输入
for(int i=1;i<=n;i++)
{
cin>>t[i]; //输入
s[i]=s[i-1]+t[i]; //前缀和
}
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
if(s[j]-s[i-1]>ans)ans=s[j]-s[i-1]; //找最大的和
}
cout<<ans; //输出
return 0;
}