leetcode 706 設計雜湊對映

2021-10-08 11:55:02 字數 2379 閱讀 6476

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 ...