题目要求找出其中子序列的最大和。
解题:就用动态规划就行。
代码:
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
l=len(nums)
dp=[nums[0]]*l
res=nums[0]
for i in range(1,l):
dp[i]=max(nums[i],dp[i-1]+nums[i])
res=max(dp[i],res)
return res
为了少用一点点空间,也可以这样写。
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
res=-2**31
c=0
for i in nums:
c=max(c+i,i)
res=max(c,res)
return res