#1244
Medium Algorithms Design a leaderboard
Hash Table Design Sorting
68.1% acceptance
Mar 31, 2026
821
98
No description available.
Solution
Rust
Time O(2^n)
Space O(n)
use std::collections::HashMap;
struct Leaderboard {
scores: HashMap<i32, i32>,
}
impl Leaderboard {
fn new() -> Self {
Leaderboard { scores: HashMap::new() }
}
fn add_score(&mut self, player_id: i32, score: i32) {
*self.scores.entry(player_id).or_insert(0) += score;
}
fn top(&self, k: i32) -> i32 {
let mut vals: Vec<i32> = self.scores.values().cloned().collect();
vals.sort_unstable_by(|a, b| b.cmp(a));
vals.iter().take(k as usize).sum()
}
fn reset(&mut self, player_id: i32) {
self.scores.remove(&player_id);
}
}