我已经实现了一个BST,它在n个节点中包含Point(x,y)类型的对象,树中的顺序是根据X的值。
我需要实现一个函数,将X的范围作为输入(x left,x right) 而输出是 (编辑):范围(包括)中Y坐标的总和。
通过“遍历”所有节点并不难做到这一点,问题是我在O(logn)复杂性中执行它。
我考虑过初始化范围的字段和Y的总和,但不知何故它不能用插入和删除功能。 有任何想法吗?
答案 0 :(得分:0)
查找范围的每一端都是O(log n)
复杂度。无需查看树中的所有节点。
如果需要对范围的数字求和,则取高边界减去低边界(假设连续的线性范围)是一个恒定时间操作。