我有一个树图声明如下:
TreeMap<Integer, Integer> tree = new TreeMap<Integer, Integer>();
Run Code Online (Sandbox Code Playgroud)
如何检索具有最大值的密钥。是否有O(1)方法来实现这一目标。我知道可以在O(1)时间内从TreeMap中检索最大和最小键,如下所示:
int maxKey = tree.lastEntry().getKey();
int minKey = tree.firstEntry().getKey();
Run Code Online (Sandbox Code Playgroud)
感谢帮助。
集合不是按值排序的,所以唯一的方法是蛮力 O(n),除非有另一个集合可以使用反向映射。
Map<Integer, Integer>map = new TreeMap<>();
int max = map.values().stream().max(Integer::compare).get();
Run Code Online (Sandbox Code Playgroud)