问题 1865 --找子序列(完善程序)

1865: 找子序列(完善程序)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 855  解决: 641
[提交][状态][命题人:]

题目描述

输入一组整数序列,找出其中一个连续的最短子序列,使子序列所有数据的和最大。比如, 给定序列 [-3,2,-3,4,-1,3,1,-3,3],  连续子序列[4,-1,3,1]能得到最大和7
#include<iostream>
using namespace std;
int main()
{
        int n,nums[100];//nums数组存放整型序列
	int maxSum[100];//maxSum[i]存放nums[i]为最后一个数的最大连续子序列和 
        cin>>n;
        for(int i=0;i<n;i++) 
	   ______(1)__________
	int result=nums[0];
	maxSum[0]=nums[0];
	for(int i=1;i<n;i++)
	{
		if(maxSum[i-1]>0)
		______(2)_________
		else
		maxSum[i]=nums[i];
		if(_____(3)______) result=maxSum[i];
	} 
	cout<<result;
}

输入

第一个数是n(2<n<100),表示序列中数据的个数,接着是n个整数,每个整数的值不小于-100,不大于100

输出

输出连续子序列的最大和,子序列允许只有一个数,每个结果占独立一行。

样例输入
Copy
9 -3 2 -3 4 -1 3 1 -5 3
样例输出
Copy
7

提示

来源

[提交][状态]