pub fn top_1(list: &[i32]) -> Result<Vec<i32>,String> {
if list.is_empty() {
return Err("Cannot identify top elements in an empty array!".to_string());
}
let mut frequency: std::collections::HashMap<i32,i32> = Default::default();
let mut results: Vec<i32> = Vec::new();
for element in list {
if frequency.contains_key(element) {
*frequency.entry(*element).or_insert(0) += 1;
} else {
frequency.insert(*element,1);
}
}
let max = frequency.values().max().unwrap();
for (item, value) in frequency.iter() {
if value == max {
results.push(*item);
}
}
Ok(results)
}