标签:子数组和的最大值
题目:输入一个整型数组,数组里有正数和负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。
实现:
bool g_InvalidInput=false; int FindGreatestSumOfSubArray(int *pData,int nLength) { if((pData==NULL)||(nLength<=0)) { g_InvalidInput=true; return 0; } g_InvalidInput=false; int nCurSum=0; int nGreatestSum=0x80000000; for(int i=0;i<nLength;++i) { if(nCurSum<=0) nCurSum=pData[i]; else nCurSum+=pData[i]; if(nCurSum>nGreatestSum) nGreatestSum=nCurSum; } return nGreatestSum; }
本文出自 “仙路千叠惊尘梦” 博客,请务必保留此出处http://secondscript.blog.51cto.com/9370042/1586349
标签:子数组和的最大值
原文地址:http://secondscript.blog.51cto.com/9370042/1586349