如何创建最小的BinaryHeap?

时间:2019-04-02 14:04:00

标签: rust binary-heap

我正在尝试在Rust中解决leetcode problem 703, largest_element_in_a_stream

我想使用BinaryHeap解决此问题,但是默认情况下,Rust中的BinaryHeap是最大堆。我不知道如何将其转换为最大堆。

我在类似的问题中找到了答案:

但是两个问题的答案使用了一些特殊的结构并重载了Ord特征,我想解决诸如i32之类的原语。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

假设您实际上想要一个最小堆,您可以否定将它放入堆中的每个值并否定您取出的每个值。

注意:正如@Shepmaster所暗示的那样,有一个i32负值,它没有对应的正值(平衡0,这是它自己的负值)。如果您需要处理此值,则此技术将不起作用,至少没有一点技巧就无法实现。