/*
连续子数组最大和
{1,-2,3,10,-4,7,2,-5}
分析数组规律,两个变量(MaxSibSum,SibSum)解决问题
*/
bool g_InvalidInput = false;//判断非法输入
int FindMaxSibSumArray(int ar[], int len)
{
if (ar == NULL || len <= 0)
{
g_InvalidInput = true;
return 0;
}
g_InvalidInput = false;
int SibSum = 0;
int SibMaxSum = 0;
for (int i = 0; i < len; ++i)
{
if (SibSum <= 0)
SibSum = ar[i];
else
SibSum += ar[i];
if (SibSum > SibMaxSum)
SibMaxSum = SibSum;
}
return SibMaxSum;
}
//void test()
//{
// int ar[8] = {1,-2,3,10,-4,7,2,-5};
// cout << FindMaxSibSumArray(ar, 8) << endl;
// cout << g_InvalidInput << endl;
//}
[剑指offer]连续子数组最大和
最新推荐文章于 2018-06-26 16:05:03 发布