题目概述
链接:https://leetcode-cn.com/problems/maximum-subarray/
解题思路:
暴力遍历法:用两个for 循环,把所有的子序列的和都算出来。
改进法:从第一个数开始加,如果和小于负数,则从后面一个数重新开始加。
代码
max_=nums[0]
for i in range (len(nums)):
temp=0
for j in range (i,len(nums)):
temp=temp+nums[j]
max_=max(temp,max_)
return max_
temp=nums[0]
max_=temp
for i in range(1,len(nums))
if temp>0: #判断大于零的话,则跟后面的数相加;不然后面再作为第一个数
temp+=nums[i]
max_=max(max_,temp)
else:
temp=nums[i]
max_=max(max_,temp)
return max_