706.设计哈希映射

Posted lanpang9661

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了706.设计哈希映射相关的知识,希望对你有一定的参考价值。

2020-04-08
设计哈希映射
不使用任何内建的哈希表库设计一个哈希集合 具体地说,你的设计应该包含以下的功能
  • put(key, value):向哈希映射中插入(键,值)的数值对。如果键对应的值已经存在,更新这个值。
  • get(key):返回给定的键所对应的值,如果映射中不包含这个键,返回-1。
  • remove(key):如果映射中存在这个键,删除这个数值对。

技术图片

题解:
思路1: 使用对象设计哈希集合
/**
 * Initialize your data structure here.
 */
var MyHashMap = function () {
  this.hashContent = {}; // 使用对象模拟hash表
};
MyHashMap.prototype.put = function (key, value) {
  this.hashContent[key] = value; // 没有值则赋值 有值则覆盖
};
MyHashMap.prototype.get = function (key) {
  // 用hasOwnProperty是因为 如果key的val就是undefined 那么用if就无法判断这个key到底存不存在
  if (this.hashContent.hasOwnProperty(key)) return this.hashContent[key];
  // 也可以用if(key in this.hashContent)
  // if (key in this.hashContent) return this.hashContent[key];
  return -1;
};
MyHashMap.prototype.remove = function (key) {
  if (this.hashContent.hasOwnProperty(key)) delete this.hashContent[key];
};

 

 

以上是关于706.设计哈希映射的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题100天—706. 设计哈希映射(哈希表)—day74

Leetcode刷题100天—706. 设计哈希映射(哈希表)—day74

LeetCode 706. Design HashMap (设计哈希映射)

哈希表相关题集

哈希表相关题集

哈希表相关题集