Azi_Libs/arr/mod.rs
1use std::collections::HashMap;
2
3/// 计算 vec 里出现次数最多的元素
4pub fn count_show<T: Eq + std::hash::Hash + Clone>(v: &Vec<T>) -> Option<T> {
5 let mut hm: HashMap<&T, i32> = HashMap::new();
6 for item in v {
7 let num = hm.entry(item).or_insert(0);
8 *num += 1;
9 }
10
11 let mut most: Option<T> = None;
12 let mut max: &i32 = &0;
13 for (&k, val) in &hm {
14 if val > max {
15 most = Some(k.clone());
16 max = val;
17 }
18 }
19 most
20}