`
844604778
  • 浏览: 548290 次
文章分类
社区版块
存档分类
最新评论

最大连续子序列乘积

 
阅读更多

思路

最大连续子序列乘积和最大连续子序列和不同,这里先回忆一下最大连续子序列和的最优解结构:

最大连续子序列和

我们用sum[i]来表示以arr[i]结尾的最大连续子序列和,则状态转移方程为:



最大连续子序列乘积

考虑存在负数的情况(ps:负负会得正),因此我们用两个辅助数组,max[i]和min[i],max[i]来表示以arr[i]结尾的最大连续子序列乘积,min[i]来表示以arr[i]结尾的最小连续子序列乘积,因此状态转移方程为:


and



最后打印出最大的max[i]就行。

答疑:
--为什么要用一个数组min[]?
--因为会存在负数,min[]就是为了找到负数中最小的,这样再乘上一个负数后就变成了一个较大的正数。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics