leetcode 705 手寫雜湊表

2021-10-21 23:44:02 字數 1120 閱讀 8000

解法一:大陣列

一開始想到的解法就是預存乙個大陣列,然後往裡加就行。利用了桶的思想。

注意:可能輸入資料較小,在leetcode提交中n開的小一點會快很多。

下列是對整數的雜湊存法,如果需要擴容,需要重新建乙個更大鄰接表,再重新插入所有元素。

class

myhashset

:def

__init__

(self)

:"""

initialize your data structure here.

"""self.n =

130000

self.l =[[

]for _ in

range

(self.n)

]def

add(self, key:

int)

->

none:if

not self.contains(key)

: self.l[key%self.n]

defremove

(self, key:

int)

->

none

:if self.contains(key)

: self.l[key%self.n]

.remove(key)

defcontains

(self, key:

int)

->

bool

:"""

returns true if this set contains the specified element

"""if key in self.l[key%self.n]

:return

true

return

false

# your myhashset object will be instantiated and called as such:

# obj = myhashset()

# obj.add(key)

# obj.remove(key)

# param_3 = obj.contains(key)

LeetCode 705 設計雜湊集合

問題描述 不使用任何內建的雜湊表庫設計乙個雜湊集合 具體地說,你的設計應該包含以下的功能 add value 向雜湊集合中插入乙個值。contains value 返回雜湊集合中是否存在這個值。remove value 將給定值從雜湊集合中刪除。如果雜湊集合中沒有這個值,什麼也不做。示例 myhas...

leetcode 705 設計雜湊集合

不使用任何內建的雜湊表庫設計乙個雜湊集合 hashset 實現 myhashset 類 void add key 向雜湊集合中插入值 key bool contains key 返回雜湊集合中是否存在這個值 key void remove key 將給定值 key 從雜湊集合中刪除。如果雜湊集合中沒...

Leetcode 705 設計雜湊集合 C

不使用任何內建的雜湊表庫設計乙個雜湊集合 具體地說,你的設計應該包含以下的功能 myhashset hashset new myhashset hashset.add 1 hashset.add 2 hashset.contains 1 返回 true hashset.contains 3 返回 f...