O(log n)时间内的最大连续和

时间:2016-01-24 08:55:07

标签: algorithm binary-tree

我正在阅读关于重光分解的this博客,并对此声明感到困惑:

  

如果给出了具有N个节点的平衡二叉树,则可以使用O(log N)复杂度完成许多查询。路径距离,路径中的最大值/最小值, 最大连续总和 等等。

我知道可以使用Kadane算法在O(n)时间内完成,但

您如何在O(log n)时间内找到最大连续总和?

1 个答案:

答案 0 :(得分:1)

可以将Kadane调整为段树设置,这允许将其包含在许多数据结构中(例如,参见my answer here;我应该有一个适当的引用,但它可能是民间传说)。

话虽如此,声称路径上的最大连续总和为O(log n)的原因是平衡二叉树中的每个简单路径都具有长度O(log n)。