Design HashMap
Easy
JavaDesignHash Map
Problem
Design a class MyHashMap with int keys (0..10000) and int values. Implement put(int, int), get(int) (returns -1 if absent), and remove(int).
Example 1
Input: put(1,1); put(2,2); get(1)
Output: 1
Constraints
- 0 ≤ key, value ≤ 10⁶
- at most 10⁴ operations
Approach — Hashing & Counting
This is a Hashing & Counting problem. The idea: store what you've seen in a hash map for O(1) lookups, trading a little space to avoid a nested scan. Work through the reference code below line by line, then re-derive it yourself in the editor — that's how the pattern sticks.
Complexity: O(n) time, O(n) space.
Solution code
Python
class MyHashMap:
def __init__(self):
self.size = 1000
self.buckets = [[] for _ in range(self.size)]
def put(self, key, value):
b = self.buckets[key % self.size]
for i, (k, _) in enumerate(b):
if k == key:
b[i] = (key, value); return
b.append((key, value))
def get(self, key):
for k, v in self.buckets[key % self.size]:
if k == key:
return v
return -1
def remove(self, key):
b = self.buckets[key % self.size]
for i, (k, _) in enumerate(b):
if k == key:
b.pop(i); return
Java
import java.util.*;
class MyHashMap {
private int[] data;
public MyHashMap() {
data = new int[1000001];
Arrays.fill(data, -1);
}
public void put(int key, int value) { data[key] = value; }
public int get(int key) { return data[key]; }
public void remove(int key) { data[key] = -1; }
}
class Solution {}
Practice it
Reading a solution isn't the same as being able to write it under pressure. Open this problem in the in-browser editor, hide the solution, and solve it from scratch — your code runs against real test cases instantly.
Solve Design HashMap interactively → ← All solutions