#include<iostream>
using namespace std;
int DP(int a[],int size)
{
int TempSum,CurSum;
CurSum = a[0];
int max = CurSum;
for(int i = 1;i<size;i++)
{
TempSum = CurSum;
if(TempSum>0)
{
CurSum = (TempSum+a[i]) >= a[i] ? (TempSum+a[i]) : a[i];
}
else
{
CurSum = a[i];
}
if(CurSum > max)
{
max = CurSum;
}
}
return max;
}
int main()
{
int a[] = {1,-2,3,10,-4,7,2,-5};
int result = DP(a,8);
cout << result << endl;
system("pause");
return 0;
}
using namespace std;
int DP(int a[],int size)
{
int TempSum,CurSum;
CurSum = a[0];
int max = CurSum;
for(int i = 1;i<size;i++)
{
TempSum = CurSum;
if(TempSum>0)
{
CurSum = (TempSum+a[i]) >= a[i] ? (TempSum+a[i]) : a[i];
}
else
{
CurSum = a[i];
}
if(CurSum > max)
{
max = CurSum;
}
}
return max;
}
int main()
{
int a[] = {1,-2,3,10,-4,7,2,-5};
int result = DP(a,8);
cout << result << endl;
system("pause");
return 0;
}