用now表示当前和,ans表示最大和, 如果now<0则可以舍弃了,因为可以直接取当前array[i]的值作为now,如果now>0则可以继续往下加array[i], 但是记住每次运算的时候都要取一次max(ans, now)作为ans更新

# -*- coding:utf-8 -*-
class Solution:
    def FindGreatestSumOfSubArray(self, array):
        # write code here
        now = 0
        ans = -float("inf")
        for i in array:
            if now < 0:
                now = i
            else:
                now += i
            ans = max(ans, now)
        return ans