在一个数组中找出和最大的连续几个数。(至少包含一个数)
例如:
数组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;
}
本文介绍了一种求解数组中最大连续子序列和的算法实现。通过双重循环遍历数组,找到所有可能的连续子序列,并记录下其中的最大和。示例代码使用C++编写,适用于初步了解此类算法的读者。
333

被折叠的 条评论
为什么被折叠?



