【发布时间】:2021-10-01 13:14:43
【问题描述】:
我有一个 TreeMap,并且想要获得一组大于给定值的 K 个最小键(条目)。
我知道我们可以使用higherKey(givenValue) 获取唯一键,但是我应该如何从那里迭代呢?
一种可能的方法是从大于给定值的最小键中获取tailMap,但如果 K 与映射大小相比较小,那就有点过头了。
O(logn + K) 时间复杂度有没有更好的方法?
【问题讨论】:
-
使用
tailMap是正确的解决方案。请注意,构建尾图是一种廉价的操作,因为它只是原始数据的视图。把它想象成Iterator。或者换一种说法:为什么你认为构建tailMap是多余的吗?您认为它具有哪些性能特点? -
@JoachimSauer 我在想 tailMap 是 O(n) 但我们只需要 O(k) 如果 k
标签: java binary-search treemap