这道题是一道经典算法题,也是清华考研的题目,使用动态规划(不太理解)来解决,时间复杂度为O(n)。
题目:
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
class Solution:
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
sum = 0
maxSum = nums[o]
for num in nums:
sum += num
if sum > maxSum:
maxSum = sum
if sum < 0:
sum = 0
return maxSum
这里将sum进行累加,当sum大于最大序列和时替换,当sum小于0时就恢复sum为0继续计算