最大子数组的和

 #include<iostream>
#define N 100
using namespace std;
 
int Compare(int Group[], int Length)
{
    int MaxSum[N][2];
    MaxSum[0][0] = MaxSum[0][1] = Group[0];
    for (int i = 1; i < Length; i++)
    {
        MaxSum[i][0] = __max(MaxSum[i - 1][0], MaxSum[i - 1][1]);
        MaxSum[i][1] = __max(MaxSum[i - 1][1] + Group[i], Group[i]);
    }
    return __max(MaxSum[Length - 1][0], MaxSum[Length - 1][1]);
}
 
int main()
{
    int Number[N];
    int length;
    cout << "请输入数组:" << endl;
    cin >> Number[0];
    length = 1;
    while (getchar() != '\n')
    {
        cin >> Number[length++];
    }
    cout << "该数组中的最大的子数组和为:";
    cout << Compare(Number, length) << endl;
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/tengda123/p/9752129.html
今日推荐