在一个数组中找出和最大的连续几个数。(至少包含一个数)
例如:
数组A[] = [−2, 1, −3, 4, −1, 2, 1, −5, 4],则连续的子序列[4,−1,2,1]有最大的和6.
格式:
第一行输入一个数字n,
第二行输入A[n],最后输出最大的和。
样例1
输入:
3 1 1 -2
输出:
2
#include <iostream>
using namespace std;
int max_sequence(int n,int A[])
{
int max=-99999999;
for(int i=0;i<n;i++)
{
int k=0;
for(int j=i;j<n;j++)
{
k += A[j];
if(k>max)
max = k;
}
}
return max;
}
int main()
{
int n,m,result;
cin>>n;
int *A= new int[n];//建立一个大小为n的数组
for (int i = 0; i < n; i++)
{
cin >> m;
A[i] = m;
}
result = max_sequence(n,A);
cout<<result<<endl;
return 0;
}