706. 設計雜湊對映
不使用任何內建的雜湊表庫設計乙個雜湊對映
具體地說,你的設計應該包含以下的功能
put(key, value):向雜湊對映中插入(鍵,值)的數值對。如果鍵對應的值已經存在,更新這個值。
get(key):返回給定的鍵所對應的值,如果對映中不包含這個鍵,返回-1。
remove(key):如果對映中存在這個鍵,刪除這個數值對。
示例:myhashmap hashmap = new myhashmap();
hashmap.put(1, 1);
hashmap.put(2, 2);
hashmap.get(1); // 返回 1
hashmap.get(3); // 返回 -1 (未找到)
hashmap.put(2, 1); // 更新已有的值
hashmap.get(2); // 返回 1
hashmap.remove(2); // 刪除鍵為2的資料
hashmap.get(2); // 返回 -1 (未找到)
注意:所有的值都在 [0, 1000000]的範圍內。
操作的總數目在[1, 10000]範圍內。
不要使用內建的雜湊庫。
class
myhashmap
:def
__init__
(self)
:"""
initialize your data structure here.
"""self.key_space =
2069
self.hash_table =
[bucket(
)for i in
range
(self.key_space)
]def
put(self, key:
int, value:
int)
->
none
:"""
value will always be non-negative.
"""hash_key = key % self.key_space
self.hash_table[hash_key]
.update(key, value)
defget
(self, key:
int)
->
int:
""" """
hash_key = key % self.key_space
return self.hash_table[hash_key]
.get(key)
defremove
(self, key:
int)
->
none
:"""
"""hash_key = key % self.key_space
self.hash_table[hash_key]
.remove(key)
class
bucket
:def
__init__
(self)
: self.bucket =
defget
(self, key)
:for
(k, v)
in self.bucket:
if k == key:
return v
return-1
defupdate
(self, key, value)
: found =
false
for i, kv in
enumerate
(self.bucket)
:if key == kv[0]
: self.bucket[i]
=(key, value)
found =
true
break
ifnot found:
(key, value)
)def
remove
(self, key)
:for i , kv in
enumerate
(self.bucket)
:if key == kv[0]
:del self.bucket[i]
# your myhashmap object will be instantiated and called as such:
# obj = myhashmap()
# obj.put(key,value)
# param_2 = obj.get(key)
# obj.remove(key)
leetcode 706 設計雜湊對映
不使用任何內建的雜湊表庫設計乙個雜湊對映 具體地說,你的設計應該包含以下的功能 put key,value 向雜湊對映中插入 鍵,值 的數值對。如果鍵對應的值已經存在,更新這個值。get key 返回給定的鍵所對應的值,如果對映中不包含這個鍵,返回 1。remove key 如果對映中存在這個鍵,刪...
LeetCode 706 設計雜湊對映
不使用任何內建的雜湊表庫設計乙個雜湊對映 具體地說,你的設計應該包含以下的功能 put key,value 向雜湊對映中插入 鍵,值 的數值對。如果鍵對應的值已經存在,更新這個值。get key 返回給定的鍵所對應的值,如果對映中不包含這個鍵,返回 1。remove key 如果對映中存在這個鍵,刪...
leetcode 706 設計雜湊對映
不使用任何內建的雜湊表庫設計乙個雜湊對映 hashmap 實現 myhashmap 類 myhashmap 用空對映初始化物件 void put int key,int value 向 hashmap 插入乙個鍵值對 key,value 如果 key 已經存在於對映中,則更新其對應的值 value ...