求一个整数数组的最大连续子数组的和

Posted zjk0109

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一个整数数组的最大连续子数组的和相关的知识,希望对你有一定的参考价值。

输入一个整数数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。
int max(int a,int b)
{
    if(a>b)
    {
       return a;
    }
    else
    {
       return b;
    }
}
int maxsum(int a[], int n)
{
    int i;
    int maxsofar = 0;
    int maxendinghere = 0;
    for (i = 0; i < n; i++)
    {
        maxendinghere = max(maxendinghere + a[i], 0);
        maxsofar = max(maxsofar, maxendinghere);
    }
    return maxsofar;
}
int main()
{
    int n, i=0;
    cout<<"输入元素个数:";
    cin>>n;
    cout<<"输入整数数组:";
    int a[100000]={0};
    for(i=0;i<n;i++) 
    {
        cin>>a[i];
    }
    int max=maxsum(a, n);
    cout << "最大连续子数组的和为:" << max << endl;
    system("pause");
}

  技术分享图片

  技术分享图片

技术分享图片

 

以上是关于求一个整数数组的最大连续子数组的和的主要内容,如果未能解决你的问题,请参考以下文章

返回一个整数数组中最大子数组的和

求一个整数数组中最大子数组的和。

返回一个二维整数数组中最大子数组的和

连续子数组的最大和-剑指Offer

关于求已知整数数组的连续子数组的最大和的方法

返回一个二维整数数组中最大子数组的和