力扣53 最大子序和 python

本文介绍了一种解决一维数组中寻找最大子序列和问题的算法。通过对比暴力解法与优化后的双层for循环策略,详细阐述了如何避免超时并找到最优解的过程。该算法首先设定首个元素为最大值,随后遍历数组,当遇到负数时重新计算,利用变量a记录并更新最大子序列和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先是想暴力,结果好多次没成功,还说超时,就放弃了暴力,采用了两个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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值