class Solution:
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
s=[nums[0]]
result=nums[0]
for i in range(1,len(nums)):
temp=max(nums[i],nums[i]+s[i-1])
s.append(temp)
result=max(result,s[i])
return result
节约空间
class Solution:
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
length=len(nums)
for i in range(1,length):
#当前值的大小与前面的值之和比较,若当前值更大,则取当前值,舍弃前面的值之和
subMaxSum=max(nums[i]+nums[i-1],nums[i])
nums[i]=subMaxSum#将当前和最大的赋给nums[i],新的nums存储的为和值
return max(nums)
网友评论