fn main() { println!("Hello, world!"); let tests = [ vec![3,2,3], vec![1], vec![1,2] ]; for test in tests { let result = Solution::majority_element(test.clone()); println!("{test:?} is {result:?}"); } } struct Solution; use std::collections::HashMap; impl Solution { pub fn majority_element(nums: Vec) -> Vec { let mut occurance: HashMap<&i32, i32> = HashMap::new(); for num in &nums { occurance.entry(num).and_modify(|x| {*x += 1}).or_insert(0); } occurance.iter().filter(|(_, &occ)| occ >= nums.len() as i32 / 3).map(|(&&num,_)| num).collect() } }