联机算法 - 求最大连续子序列和

非常屌的一个算法,时间O(n),空间O(1)。只有六句,我到现在都没看明白。

//vector<int> arr;

int sum = 0;
int maxsum = INT_MIN;
for(int e : arr)
{
  sum = max(sum + e, e);
  maxsum = max(sum, maxsum);
}

cout << maxsum << endl;

这是非空的,允许为空的情况只要把第一个max第二个参数改成0就好了。