目录
解题思路
代码实现
int main()
{
int ar[] = { -2, 11, -4, 13, -5, -2 };
int const length = sizeof(ar) / sizeof(ar[0]);
int dp[length] = { 0 };
dp[0] = ar[0] < 0 ? 0 : ar[0];
int maxval = dp[0];
for (int i = 0; i < length; ++i)
{
dp[i] = ar[i] + dp[i - 1];
if (dp[i] < 0)
{
dp[i] = 0;
}
if (dp[i] > maxval)
{
maxval = dp[i];
}
}
cout << "maxval:" << maxval << endl;
system("pause");
return 0;
}
结果如下: