rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;
use std::collections::HashMap;

impl Solution {
    fn find_lucky(arr: Vec<i32>) -> i32 {
        let mut hm: HashMap<i32, i32> = HashMap::new();
        for x in arr {
            *hm.entry(x).or_default() += 1;
        }
        if let Some(x) = hm
            .into_iter()
            .filter_map(|(k, v)| if k == v { Some(k) } else { None })
            .max()
        {
            x
        } else {
            -1
        }
    }
}

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