Skip to content

Commit 50a8506

Browse files
committed
feat: add solution for kth largest element in an array in rust
1 parent 3760fca commit 50a8506

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#![allow(dead_code)]
2+
use std::collections::BinaryHeap;
3+
4+
pub fn find_kth_largest(nums: Vec<i32>, k: i32) -> i32 {
5+
let mut max_heap = BinaryHeap::from(nums);
6+
for _ in 0..k - 1 {
7+
max_heap.pop();
8+
}
9+
*max_heap.peek().unwrap_or(&0)
10+
}
11+
12+
#[cfg(test)]
13+
mod tests {
14+
use super::*;
15+
16+
#[test]
17+
fn test_1() {
18+
let nums = vec![3, 2, 1, 5, 6, 4];
19+
let k = 2;
20+
assert_eq!(find_kth_largest(nums, k), 5);
21+
}
22+
23+
#[test]
24+
fn test_2() {
25+
let nums = vec![3, 2, 3, 1, 2, 4, 5, 5, 6];
26+
let k = 4;
27+
assert_eq!(find_kth_largest(nums, k), 4);
28+
}
29+
}

0 commit comments

Comments
 (0)