这个算法很有意思,我知道它正在用于图像处理(可能还有其他场景),但我觉得奇怪的是这个算法也在负值上运行,而在成像世界中几乎不存在负值其中有很多unsigned int
来表示值。
你能提供一个利用Kadane算法的实际例子吗?
答案 0 :(得分:1)
它可以处理以下问题:
给出一个P(D,X)形式的n加油站列表,其中D是从该站到下一站的距离,X是该站可用的汽油量,请确定您可以从哪里完成的起始站从1 ..... N开始到每个车站的旅程。你只能向一个方向前进,即从P(i)到P(i + 1)。假设你需要找到最大总和。
Kadane的算法(解决方案)
的初始化强> 的: max_so_far = 0 max_ending_here = 0
对于数组的每个元素,循环 (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
答案 1 :(得分:1)
其中一个显而易见的应用是业务分析,您需要找出公司经历最大增长的持续时间或最短时间的持续时间,这有助于公司在这些时期内找到他们做得好或坏的时间为了公司的利益,将来重复或阻止它们。
答案 2 :(得分:1)