rustgym 0.2.0

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

impl Solution {
    fn num_rabbits(answers: Vec<i32>) -> i32 {
        let mut hm: HashMap<i32, i32> = HashMap::new();
        for x in answers {
            *hm.entry(x).or_default() += 1;
        }
        let mut res = 0;
        for (k, v) in hm {
            res += (v + k) / (k + 1) * (k + 1);
        }
        res
    }
}

#[test]
fn test() {
    let answers = vec![1, 1, 2];
    let res = 5;
    assert_eq!(Solution::num_rabbits(answers), res);
    let answers = vec![10, 10, 10];
    let res = 11;
    assert_eq!(Solution::num_rabbits(answers), res);
    let answers = vec![];
    let res = 0;
    assert_eq!(Solution::num_rabbits(answers), res);
}