动态规划
int MaxSubArray(int S[],int n)
{
int Max = S[0]; // 保存最大子列和
currMax = 0; // 元素头到当前的和
for(int i=0;i<n;i++)
{
if(currMax>=0) // 当前和大于0,可以继续放入
{
currMax += S[i];
}
else // 小于0,放入只能得到更小的数,所有直接把前面的结果丢掉,当前元素作为头元素
{
currMax = S[i]
}
if(currMax > Max) // 比较,找到最大子列和
{
Max = currMax;
}
}
return Max;
}