标签:bar 表示 最大 ret turn sid range 产生 正数
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
dp = [0 for i in range(len(nums))]
if len(nums) == 1: # 只有一个元素,选定该元素
return nums[0]
dp[0] = nums[0]
for i in range(1,len(nums)):
if dp[i-1] <= 0: # 该元素之前的序列和产生负影响
dp[i] = nums[i]
else:
dp[i] = max(dp[i-1] + nums[i],nums[i]) # 为正影响时,判断加上该元素是否得到更大的和
mmax = dp[0]
for i in range(1,len(dp)): # 取出dp中最值
if dp[i] > mmax:
mmax = dp[i]
return mmax
标签:bar 表示 最大 ret turn sid range 产生 正数
原文地址:https://www.cnblogs.com/cheslee/p/13374168.html