#include<iostream>
using namespace std;
int FindMaxSumOfSubArray1(
int Array[],
int length)
{
if(Array == NULL || length <=
0)
{
throw exception(
"ERROR");
}
int nMax =
0;
int nCurSum =
0;
for(
int i =
0; i< length; ++i)
{
if(nCurSum<=
0)
nCurSum = Array[i];
else
nCurSum +=Array[i];
if(nCurSum > nMax)
{
nMax = nCurSum;
}
}
return nMax;
}
int FindMaxSumOfSubArray2(
int Array[],
int length)
{
if(Array == NULL || length <=
0)
{
throw exception(
"ERROR");
}
int nPre = Array[
0];
int nCur =
0;
int nMax =
0x80000000;
for(
int i =
1; i< length; ++i)
{
if(nPre <=
0)
nCur = Array[i];
else
nCur = nPre+Array[i];
nPre = nCur;
if(nCur > nMax)
nMax = nCur;
}
return nMax;
}
int main()
{
int a[] = {
1, -
2,
3,
10, -
4,
7,
2, -
5};
cout<<FindMaxSumOfSubArray2(a,
8)<<endl;
}
转载请注明原文地址: https://ju.6miu.com/read-18582.html