数据结构与算法:第二周作业一:最大自序和

题目概述

在这里插入图片描述
链接: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_
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值