Title:Designahashmapwithoutusinganybuilt-inhashtablelibrary具体来说,你的设计应该包括以下函数put(key,value):Avaluepairof(key,value)插入希腊地图。如果该键对应的值已经存在,则更新该值。get(key):返回给定键对应的值,如果键不在映射中则返回-1。remove(key):如果key存在于map中,删除value对。在不使用任何内置哈希表库的情况下设计一个HashMap。具体来说,您的设计应包括以下功能:put(key,value):将(key,value)对插入HashMap。如果该值已存在于HashMap中,则更新该值。get(key):返回指定键映射到的值,如果此映射不包含该键的映射,则返回-1。remove(key):删除映射如果此映射包含键的映射,则为值键。示例:MyHashMaphashMap=newMyHashMap();hashMap.put(1,1);hashMap.put(2,2);hashMap.get(1);//返回1hashMap.get(3);//返回-1(未找到)hashMap.put(2,1);//更新现有值hashMap.get(2);//返回1hashMap.remove(2);//删除键作为2的数据hashMap.get(2);//返回-1(未找到)注意:所有值都在[1,1000000]范围内。操作总数在[1,10000]范围内。不要使用内置的哈希库。注意:所有的键和值都会在[0,1000000]范围内。操作数将在[1,10000]范围内。请不要使用内置的HashMap库。解题思路:类似于设计哈希集的问题,只需要将布尔数组改为int整型数组,元素索引位置为Key值,元素值为Value值即可。题目要求当Key不存在时返回-1。在Python中,可以直接初始化一个长度为1000001,值为-1的数组,直接返回Value值。其他语言初始化数组后,元素值默认为0,可以遍历将值改为-1,或者将存储的值加1,返回Value-1。如果Key不存在,Value为0,返回Value-1=-1,满足要求。代码:Java:classMyHashMap{privateint[]hashMap;/**在这里初始化你的数据结构。*/publicMyHashMap(){this.hashMap=newint[1000001];}/**值总是非负的。*/publicvoidput(intkey,intvalue){hashMap[key]=value+1;//存储真实值加1}/**返回指定键映射到的值,如果这个映射返回-1不包含键的映射*/publicintget(intkey){returnhashMap[key]-1;//返回存储值为-1得到真实值}/**如果此映射删除指定值键的映射包含键的映射*/publicvoidremove(intkey){hashMap[key]=0;}}Python:classMyHashMap:def__init__(self):"""在这里初始化你的数据结构。"""self.hash_table=[-1]*1000001defput(self,key:int,value:int)->无:"""值将始终为非负数。"""self.hash_table[key]=valuedefget(self,key:int)->int:"""返回指定键映射到的值,如果此映射不包含键的映射,则返回-1"""returnself.hash_table[key]#直接返回Valuedefremove(self,key:int)->None:"""如果此映射包含键的映射,则删除指定值键的映射"""self.hash_table[key]=-1欢迎关注微.信公.众号:爱写Bug
