解题思路: 动态数组dp[i]为下标为i处的最大累和 dp[0] = arr[0] 当dp[i-1]>0, dp[i] = dp[i-1]+arr[i] 当dp[i-1]<=0, dp[i] = arr[i] # # max sum of the subarray # @param arr int整型一维数组 the array # @return int整型 # class Solution: def maxsumofSubarray(self , arr ): # write code here ''' print(arr) t = 0 maxsum1 = 0 for i in arr: t += i if t<0: t=0 elif t>maxsum1: maxsum1 = t n = len(arr) dp = [0]*n dp[0] = arr[0] for i in range(1,n): if dp[i-1]>0: dp[i] = dp[i-1]+arr[i] else: dp[i] = arr[i] maxsum2 = max(dp) n = len(arr) dp = [0]*n dp[0] = arr[0] for i in range(1,n): dp[i] = max(dp[i-1]+arr[i], arr[i]) maxsum3 = max(dp) ''' n = len(arr) t_max = arr[0] maxsum = arr[0] for i in range(1,n): t_max = max(t_max+arr[i], arr[i]) if t_max > maxsum: maxsum = t_max #print(maxsum1) #print(maxsum2) return maxsum