class Solution:
    def FindGreatestSumOfSubArray(self, a):
        s = 0
        ret = a[0]
        for i in a:
            s = s+i
            ret = max(s,ret)
            if s < 0:
                s = 0
        return ret
s表示前i个元素的最大连续和(在必定包括i的条件下,否则为0)
    所以,在s=i+s使得s为负时,i过于负贡献时,设置s为0
ret表示前i个元素的最大连续和(可不包括i)。所以最后可直接返回ret。
    初始值设置为第一个元素,这样才能保证数组全为负数时,返回一个最大负数。