#2136. 设计哈希映射

设计哈希映射

问题描述

请你设计一个不使用任何内建的哈希表库的哈希映射(HashMap)。

实现MyHashMap类:

  • MyHashMap():初始化映射对象。
  • void put(int key, int value):向映射中插入一个键值对(key, value)。如果key已经存在,则更新对应的value。
  • int get(int key):返回指定key对应的value;如果映射中不包含key,返回-1。
  • void remove(int key):如果映射中存在key,则移除key及其对应的value。

格式

输入

  • 一系列操作序列和对应的参数。

输出

  • 每个操作的返回值(对于无返回值的操作,如put和remove,返回null)。

样例

样例1

输入

9
MyHashMap put put get get put get remove get
0 1,1 2,2 1 3 2,1 2 2 2

输出

null null null 1 -1 null 1 null -1

解释

MyHashMap myHashMap = new MyHashMap(); myHashMap.put(1, 1); // 映射是 [[1,1]] myHashMap.put(2, 2); // 映射是 [[1,1], [2,2]] myHashMap.get(1); // 返回 1 myHashMap.get(3); // 返回 -1(不存在) myHashMap.put(2, 1); // 更新已有的键,映射是 [[1,1], [2,1]] myHashMap.get(2); // 返回 1 myHashMap.remove(2); // 删除键2,映射是 [[1,1]] myHashMap.get(2); // 返回 -1(不存在)


提示

  • 0 <= key, value <= 10^6
  • 最多调用10^4次putgetremove