转载出处:https://www.cnblogs.com/allzy/p/5162815.html(解释的非常透彻)
最好的算法就是利用动态规划来计算(DP[i] = max{DP[i-1] + A[i],A[i]})
class Solution {
public:
int getMaxSubSerial(int arr[],int size)
{
int MaxSum=0xf0000000;
int AddSum=0;
for(int i=0;i<size;++i)
{
if(AddSum<0)
AddSum=arr[i];
else
AddSum+=arr[i];
if(AddSum>MaxSum)
MaxSum=AddSum;
}
return MaxSum;
}
};