可能重复:
Find the maximum interval sum in a list of real numbers
下面是我的dp表达式来解决这个问题:
lcs[i] = { max(lcs[i-1] + x[i], x[i])}
其中lcs [i]是直到索引i并且还包括元素x [i]的最长连续和。但是,我不知道为什么我们定义lcs [i]也包括x [i]。我们不能将lcs [i]定义为直到索引i的最长连续总和。
答案 0 :(得分:0)
您不能将lcs[i]
定义为lcs[i-1]+x[i]
,因为列表中可能存在负数。
考虑清单x={-1, 1}
。
lcs[0] = -1
lcs[1] = max(-1+1,1) = 1 != -1+1
如果您的列表严格是非负面的,那么是的,您可以定义lcs[i]=lcs[i-1]+x[i]
。但请注意,此递归定义直接转换为所有x[i]
的总和。这同意直观的概念,即正数列表的最大连续总和只是列表中所有元素的总和。