/*
功能:
输入:pIntArray:数组,nCout:数组长度
输出:
返回:返回最大值
功能:
输入:pIntArray:数组,nCout:数组长度
输出:
返回:返回最大值
*/
场景:
{2,-1,4}→返回5
{2,-3,4}→返回4
{-1,0,-3}→返回0
{-1,-2,-3}→返回-1
#include <stdlib.h>
#include <string.h>
int GetSubArraySum(int* pIntArray, int nCount)
{
if ((NULL == pIntArray) || (0 >= nCount))
{
return 0;
}
int MaxSum = pIntArray[0];
int TmpSum = pIntArray[0];
for (int i = 1; i < nCount; i++)
{
if (pIntArray[i] < 0)
{
MaxSum = (TmpSum > MaxSum)?TmpSum:MaxSum;
}
TmpSum = (TmpSum > 0)?(TmpSum + pIntArray[i]):pIntArray[i];
}
MaxSum = (TmpSum > MaxSum)?TmpSum:MaxSum;
return MaxSum;
}