返回介绍

solution / 0700-0799 / 0706.Design HashMap / README_EN

发布于 2024-06-17 01:03:35 字数 5157 浏览 0 评论 0 收藏 0

706. Design HashMap

中文文档

Description

Design a HashMap without using any built-in hash table libraries.

Implement the MyHashMap class:

  • MyHashMap() initializes the object with an empty map.
  • void put(int key, int value) inserts a (key, value) pair into the HashMap. If the key already exists in the map, update the corresponding value.
  • int get(int key) returns the value to which the specified key is mapped, or -1 if this map contains no mapping for the key.
  • void remove(key) removes the key and its corresponding value if the map contains the mapping for the key.

 

Example 1:

Input
["MyHashMap", "put", "put", "get", "get", "put", "get", "remove", "get"]
[[], [1, 1], [2, 2], [1], [3], [2, 1], [2], [2], [2]]
Output
[null, null, null, 1, -1, null, 1, null, -1]

Explanation
MyHashMap myHashMap = new MyHashMap();
myHashMap.put(1, 1); // The map is now [[1,1]]
myHashMap.put(2, 2); // The map is now [[1,1], [2,2]]
myHashMap.get(1);  // return 1, The map is now [[1,1], [2,2]]
myHashMap.get(3);  // return -1 (i.e., not found), The map is now [[1,1], [2,2]]
myHashMap.put(2, 1); // The map is now [[1,1], [2,1]] (i.e., update the existing value)
myHashMap.get(2);  // return 1, The map is now [[1,1], [2,1]]
myHashMap.remove(2); // remove the mapping for 2, The map is now [[1,1]]
myHashMap.get(2);  // return -1 (i.e., not found), The map is now [[1,1]]

 

Constraints:

  • 0 <= key, value <= 106
  • At most 104 calls will be made to put, get, and remove.

Solutions

Solution 1

class MyHashMap:
  def __init__(self):
    self.data = [-1] * 1000001

  def put(self, key: int, value: int) -> None:
    self.data[key] = value

  def get(self, key: int) -> int:
    return self.data[key]

  def remove(self, key: int) -> None:
    self.data[key] = -1


# Your MyHashMap object will be instantiated and called as such:
# obj = MyHashMap()
# obj.put(key,value)
# param_2 = obj.get(key)
# obj.remove(key)
class MyHashMap {
  private int[] data = new int[1000001];

  public MyHashMap() {
    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;
  }
}

/**
 * Your MyHashMap object will be instantiated and called as such:
 * MyHashMap obj = new MyHashMap();
 * obj.put(key,value);
 * int param_2 = obj.get(key);
 * obj.remove(key);
 */
class MyHashMap {
public:
  int data[1000001];

  MyHashMap() {
    memset(data, -1, sizeof data);
  }

  void put(int key, int value) {
    data[key] = value;
  }

  int get(int key) {
    return data[key];
  }

  void remove(int key) {
    data[key] = -1;
  }
};

/**
 * Your MyHashMap object will be instantiated and called as such:
 * MyHashMap* obj = new MyHashMap();
 * obj->put(key,value);
 * int param_2 = obj->get(key);
 * obj->remove(key);
 */
type MyHashMap struct {
  data []int
}

func Constructor() MyHashMap {
  data := make([]int, 1000010)
  for i := range data {
    data[i] = -1
  }
  return MyHashMap{data}
}

func (this *MyHashMap) Put(key int, value int) {
  this.data[key] = value
}

func (this *MyHashMap) Get(key int) int {
  return this.data[key]
}

func (this *MyHashMap) Remove(key int) {
  this.data[key] = -1
}

/**
 * Your MyHashMap object will be instantiated and called as such:
 * obj := Constructor();
 * obj.Put(key,value);
 * param_2 := obj.Get(key);
 * obj.Remove(key);
 */
class MyHashMap {
  data: Array<number>;
  constructor() {
    this.data = new Array(10 ** 6 + 1).fill(-1);
  }

  put(key: number, value: number): void {
    this.data[key] = value;
  }

  get(key: number): number {
    return this.data[key];
  }

  remove(key: number): void {
    this.data[key] = -1;
  }
}

/**
 * Your MyHashMap object will be instantiated and called as such:
 * var obj = new MyHashMap()
 * obj.put(key,value)
 * var param_2 = obj.get(key)
 * obj.remove(key)
 */

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文