gpt4 book ai didi

algorithm - 对 Kadane 的算法感到困惑?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:47:35 27 4
gpt4 key购买 nike

我查找了寻找连续子数组最大和的最优解。还有一种算法叫做 Kadane 算法。这是我在 geeksforgeeks 上找到的伪代码。

 Initialize:
max_so_far = 0
max_ending_here = 0

Loop for each element of the array
(a) max_ending_here = max_ending_here + a[i]
(b) if(max_ending_here < 0)
max_ending_here = 0
(c) if(max_so_far < max_ending_here)
max_so_far = max_ending_here
return max_so_far

我不明白的部分是(b),为什么这里的max_ending小于0时这里的max_ending设置为0?这背后的直觉是什么?

最佳答案

您想重置最大值,因为任何可能抵消最大值的潜在负数组元素。

例如,

2 3 -6 4 2

在元素 -6 处,如果您不在此处重置最大值,那么您会将 -1 的最大值带入下一次迭代。

关于algorithm - 对 Kadane 的算法感到困惑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43689628/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com