为什么编译错误,求助
查看原帖
为什么编译错误,求助
1456870
Fiji楼主2024/9/14 19:28
#include <iostream>
using namespace std;
int maxCrossingSum(int nums[], int low, int mid, int high)
{
    int left_sum = 1e-5;
    int sum = 0;
    for (int i = mid; i >= low; i--) {
        sum += nums[i];
        if (sum > left_sum) {
            left_sum = sum;
        }
    }

    int right_sum = 1e-5;
    sum = 0;
    for (int i = mid + 1; i <= high; i++) {
        sum += nums[i];
        if (sum > right_sum)
        {
            right_sum = sum;
        }
    }

    return left_sum + right_sum;
}

int maxSubArraySum(int nums[], int low, int high) {
    if (low == high) 
    {
        return nums[low];
    }

    int mid = (low + high) / 2;
    int left_max = maxSubArraySum(nums, low, mid);
    int right_max = maxSubArraySum(nums, mid + 1, high);
    int cross_max = maxCrossingSum(nums, low, mid, high);
    return max(left_max, right_max, cross_max);
}

int main() 
{
    int n;
    cin >> n;
    int a[200001];
    int i;
    for (i = 0; i < n; i++) 
    {
        cin >> a[i];
    }
    int result = maxSubArraySum(a, 0,n-1);
    cout<< result << endl;
    return 0;
}
2024/9/14 19:28
加载中...