思路:用一个临时变量t记录从第一个数开始到末尾的累加值,在遍历到第i个值时,累加值如果和当前值的和比当前值要大,就等于他们的和,否则就等于当前值。再用一个变量res,记录t出现过的值中的最大值。

class Solution:
    def maxsumofSubarray(self , arr ):
        # write code here
        t=res=arr[0]
        n=len(arr)
        for i in range(1,n):
            t=t+arr[i] if t+arr[i]>arr[i] else arr[i]
            res=max(res,t)
        return res