blob: 34872a4ea6067945beb32e4c42a6206eacbcaaed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
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<i32>) -> Vec<i32> {
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()
}
}
|