1.题目:
求连续子数组的最大和
2.思路:动态规划
dp[i] = dp[i-1] + array[i] if dp[i-1] > 0
dp[i] = array[i] if dp[i-1] < 0
需要定义一个和array一样大小的列表dp存储当前子数组的和
3.出现的报错:
list assignment index out of range
列表超过限制
4.分析
可能情况是:list[index]index超出范围
另一种情况是:list是一个空的,没有一个元素,进行list[0]就会出现错误!
5.解决方案
将dp=[] 改为:dp={}
具体代码如下
class Solution:
def FindGreatestSumOfSubArray(self, array):
# write code here
if not array:
return None
maxnum=array[0]
#dp=[]
dp={}
dp[0]=array[0]
for i in range(1,len(array)):
if dp[i-1]>0:
dp[i]=dp[i-1]+array[i]
else:
dp[i]=array[i]
maxnum=max(maxnum,dp[i])
return maxnum
————————————————
版权声明:本文为CSDN博主「moonbaby1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hhcharming/article/details/106578473