We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents dee8fab + f88dbc6 commit a7bb3e8Copy full SHA for a7bb3e8
rust/0703-kth-largest-element-in-a-stream.rs
@@ -0,0 +1,31 @@
1
+use std::{cmp::Reverse, collections::BinaryHeap};
2
+
3
+struct KthLargest {
4
+ min_heap: BinaryHeap<Reverse<i32>>,
5
+ size: usize,
6
+}
7
8
+impl KthLargest {
9
+ fn new(k: i32, nums: Vec<i32>) -> Self {
10
+ let mut kth_largest = KthLargest {
11
+ min_heap: BinaryHeap::new(),
12
+ size: k as usize,
13
+ };
14
+ for n in nums {
15
+ kth_largest.add(n);
16
+ }
17
+ kth_largest
18
19
20
+ fn add(&mut self, val: i32) -> i32 {
21
+ self.min_heap.push(Reverse(val));
22
+ if self.min_heap.len() > self.size {
23
+ self.min_heap.pop();
24
25
26
+ match self.min_heap.peek() {
27
+ Some(Reverse(min_val)) => *min_val,
28
+ _ => -1,
29
30
31
0 commit comments