题目分析:
这一题是让我们找相加最大的子串,这个是属于动态规划的一类题目,在循环的时候我们每次循环都找出以当前位置结束的最大值,再用一个max_sum记录最大的并返回。
代码说明:
next_sum = max(next_sum + nums[i], nums[i])
是比较当前数值大,还是加上之前的最大字串数值大,即找出以当前位置结束的最大值。
测试代码
class Solution:
def maxSubArray(self, nums):
length = len(nums)
if length == 0: return 0
max_sum = next_sum = nums[0]
for i in range(1, length):
next_sum = max(next_sum + nums[i], nums[i])
max_sum = max(max_sum, next_sum)
return max_sum
print(Solution().maxSubArray([-2,1,-3,4,-1,2,1,-5,4],)) #提交时请删除该行