Skip to main content
Back to problems
#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)
LeetCode
solution.rs
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);
  }
}