【发布时间】:2016-09-13 21:19:12
【问题描述】:
给定一棵 AVL 树,它存储了一组由 n 个不同个自然数组成的 G。在每个节点中存储以该节点为根的子树中的节点数。
我们如何找到不在 G 中且在 O(log n) 的时间复杂度上大于给定 p 的最小 m?
例子:
如果G={21,22,23,24,26,27,29,30} 那么:p=20 => m=25 p=22 => m=25 p=25 => m=28 p=29 => m=31
【问题讨论】:
-
我们可以为每个节点添加额外的信息吗?
-
@templatetypedef 这是给定的。你有什么想法?
-
我想如果每个子树也存储它的最小值和最大值,这会更容易。
-
@templatetypedef 但它没有......也许可以用 max 节点(我们可以在 O(log n) 中得到)以及 max 和
p的差异来做一些事情?
标签: algorithm binary-search-tree avl-tree