力扣706 設計雜湊對映

2022-06-30 09:42:15 字數 1348 閱讀 1673

原題 :

不使用任何內建的雜湊表庫設計乙個雜湊對映(hashmap)。

實現 myhashmap 類:

myhashmap() 用空對映初始化物件 void put(int key, int value) 向 hashmap 插入乙個鍵值對 (key, value) 。

如果 key 已經存在於對映中,則更新其對應的值 value 。 int get(int key) 返回特定的 key 所對映的 value ;

如果對映中不包含 key 的對映,返回 -1 。 void remove(key) 如果對映中存在 key 的對映,則移除 key 和它所對應的 value 。

個人理解

對於雜湊表,在資料結構可以用乙個陣列加鍊表的組合,陣列為了可以對資料分組,

可以加快查詢速度,對於在同乙個組內的資料進行遍歷就可以找到資料的了

class

myhashmap:

def__init__

(self):

"""initialize your data structure here.

"""self.buckets = 1009self.table = [ for _ in

range(self.buckets) ]

defhash(self,key):

return key %self.buckets

def put(self, key: int, value: int) ->none:

"""value will always be non-negative.

"""hashkey =self.hash(key)

for item in

self.table[hashkey]:

if item[0] ==key:

item[1] =value

return

def get(self, key: int) ->int:

"""

"""hashkey =self.hash(key)

for item in

self.table[hashkey]:

if item[0] ==key:

return item[1]

return -1

def remove(self, key: int) ->none:

hashkey =self.hash(key)

for i, item in

enumerate(self.table[hashkey]):

if item[0] ==key:

self.table[hashkey].pop(i)

return

力扣每日一題706 設計雜湊對映

原理和昨天一樣 hash表 陣列 鍊錶 今天要考慮鍵值 因此使用結構體kv儲存鍵 和值。如果沒有該鍵 則使用結構體進行構造新鍵值。並將其壓入list中。class myhashmap struct kv vector set public initialize your data structure...

力扣每日一題 706 設計雜湊對映

解題思路 解題 解題感悟 難度 簡單 題目 不使用任何內建的雜湊表庫設計乙個雜湊對映 hashmap 實現 myhashmap 類 輸入 myhashmap put put get get put get remove get 1,1 2,2 1 3 2,1 2 2 2 輸出 null,null,n...

706 設計雜湊對映

不使用任何內建的雜湊表庫設計乙個雜湊對映 具體地說,你的設計應該包含以下的功能 put key,value 向雜湊對映中插入 鍵,值 的數值對。如果鍵對應的值已經存在,更新這個值。get key 返回給定的鍵所對應的值,如果對映中不包含這個鍵,返回 1。remove key 如果對映中存在這個鍵,刪...