用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