2016 - 2024

感恩一路有你

最大子序列和的四种算法 求一组整数数组中的连续子序列和的最大值?

浏览量:2860 时间:2021-03-15 03:54:20 作者:admin

求一组整数数组中的连续子序列和的最大值?

如果主题是代码中的和

对于不同的个体考虑,最多会减少一个值,这可以通过预处理获得。显然,最大值只会出现在Pascal语言不能出现的所有情况下,但我要告诉您“Max sum subsequence”,这意味着在数组中找到几个连续的数据,它们的和是最大的。也许我没说清楚,让我给你举个例子

例子:一个数组:2,4,-33,34,45,-23,7

数组中任意一个数的连续数据都是这个数组的子序列

34和45是和最大的子序列

所以要搜索的数组中必须有负数,否则会有负数没有最大和子序列(整个数组是最大的)

不是两个数字,而是任意长度的,找到任意长度的子序列

如果:2,4,-33,34,45,-10,12,-2

这不是真的,最大和子序列是:34,45,-10,12。理解以下要素:1。任意长度2。连续

在这个扫描数组中,从左到右记录当前子序列和这个子序列的和。如果和在增加,则最大子序列和最大和的和也在增加(不断更新最大和)。

如果在正向扫描中遇到负数,则当前子序列的总和将减小。

此时,thissum将小于maxsum,当然maxsum不会更新。

如果thissum降为0,则表示可以丢弃先前扫描的段。此时,thissum设置为0。

然后,thissum将从以下内容分析此子段。如果存在大于当前最大和的子段,请继续更新最大和。

扫描结果出来了。

最大子序列和的四种算法 数组中的最长连续子序列 连续子串最大和

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。