rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

use std::cmp::Reverse;
use std::collections::BinaryHeap;
use std::collections::HashMap;

impl Solution {
    fn find_least_num_of_unique_ints(arr: Vec<i32>, k: i32) -> i32 {
        let mut k = k as usize;
        let mut count: HashMap<i32, usize> = HashMap::new();
        for x in arr {
            *count.entry(x).or_default() += 1;
        }
        let mut queue: BinaryHeap<Reverse<usize>> = BinaryHeap::new();
        for (_, v) in count {
            queue.push(Reverse(v));
        }
        while let Some(&min) = queue.peek() {
            if min.0 <= k {
                k -= min.0;
                queue.pop();
            } else {
                break;
            }
        }
        queue.len() as i32
    }
}

#[test]
fn test() {
    let arr = vec![5, 5, 4];
    let k = 1;
    let res = 1;
    assert_eq!(Solution::find_least_num_of_unique_ints(arr, k), res);
    let arr = vec![4, 3, 1, 1, 3, 3, 2];
    let k = 3;
    let res = 2;
    assert_eq!(Solution::find_least_num_of_unique_ints(arr, k), res);
}