实例代码:
#include <iostream>
using namespace std;
int maxSub(int a[],int n,int& b,int& e)
{
int sum = -1;
int max = -0xfff;
for (int i = 0; i < n; i++)
{
if (sum < 0)
{
sum = 0;
b = i;
}
sum += a[i];
if (max < sum)
{
max = sum;
e = i;
}
}
return max;
}
int main()
{
int a[] = {-2, 11, -4, 13, -5, 2, -5, -3, 12, -9};
int b, e;
int max = maxSub(a, sizeof(a)/sizeof(a[0]), b, e);
cout << max << endl;
cout << b<< " " << e << endl;
return 0;
}