【NOJ1576】【算法实验四】最大连续子序列和问题

1576.最大连续子序列和问题

描述:

给定一整数序列A0,A1, A2,… An-1 (可能有负数),求A0An-1的一个连续子序列AiAj,使得Ai到Aj的和最大。

输入:

先输入一个正整数n(1<n<1000),再输入n个整数。

输出:

输出最大连续子序列的和。

输入样例:

10
2 -1 5 -7 2 -1 4 -2 4 -5

输出样例:
7

#include<iostream>

using namespace std;

const int maxn=10050;
int n,a[maxn],sum[maxn];

int max(int x,int y)
{
    
    
	return x>y?x:y;
}

int main()
{
    
    
	int i;
	cin>>n;
	for(i=1;i<=n;i++) cin>>a[i];
	int ans=0;
	for(i=1;i<=n;i++)
	{
    
    
		if(sum[i-1]>0)sum[i]=sum[i-1]+a[i];
		else sum[i]=a[i];
		ans=max(ans,sum[i]);
	}
	cout<<ans<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_45619006/article/details/110211315
今日推荐