力扣705-设计哈希集合

原题 :https://leetcode-cn.com/problems/design-hashset/

不使用任何内建的哈希表库设计一个哈希集合(HashSet)。

实现 MyHashSet 类:

void add(key) 向哈希集合中插入值 key 。
bool contains(key) 返回哈希集合中是否存在这个值 key 。
void remove(key) 将给定值 key 从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。



 

个人理解

  同力扣706  https://www.cnblogs.com/wang102030/p/14533987.html

class MyHashSet:

    def __init__(self):
        """
        Initialize your data structure here.
        """
        self.buckets = 1009
        self.table = [ [] for _ in range(self.buckets) ]

    def hash(self,key):
        return key % self.buckets 

    def add(self, key: int) -> None:
        hashkey = self.hash(key)
        for item in  self.table[hashkey]:
            if item == key:
                return
        self.table[hashkey].append(key)

    def remove(self, key: int) -> None:
        hashkey = self.hash(key)
        for i, item in enumerate(self.table[hashkey]):
            if item == key:
                self.table[hashkey].pop(i)
                return

    def contains(self, key: int) -> bool:
        """
        Returns true if this set contains the specified element
        """
        hashkey = self.hash(key)
        for item in self.table[hashkey]:
            if item == key:
                return True
        return False

 

posted @ 2021-03-14 20:59  睡觉了嘛  阅读(68)  评论(0编辑  收藏  举报