先是想暴力,结果好多次没成功,还说超时,就放弃了暴力,采用了两个for
,又改了几次,最终才这个样子
假设第一个为最大,然后开始循环
如果前面是负值,就从当前值开始算
设置a记录每次加完的max1,与后面的相比,取最大值
代码实现
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
l=len(nums)
a=nums[0]
max1=nums[0]
for i in range(1,l):
if max1<=0:
max1=nums[i]
else:
max1+=nums[i]
a=max(a,max1)
return a