这题的问题的关键就是:tmpMaxSum若是负数时,清零。
public static int GetMaxSubSum(int [] arr, int len)
{
if(arr == null || len == 0)
{
throw new ArgumentNullException("");
}
int maxSum = tmpSum = arr[0];
for(int i=1; i<len; i++)
{
if(tmpSum < 0)
{
tmpSum = arr[i]
}
else
{
tmpSum = tmpSum + arr[i];
}
if(tmpSum>maxSum)
{
maxSum = tmpSum;
}
}
return maxSum;
}