• leetcode_705


    Design a HashSet without using any built-in hash table libraries.

    To be specific, your design should include these functions:

    • add(value): Insert a value into the HashSet. 
    • contains(value) : Return whether the value exists in the HashSet or not.
    • remove(value): Remove a value in the HashSet. If the value does not exist in the HashSet, do nothing.


    Example:

    MyHashSet hashSet = new MyHashSet();
    hashSet.add(1);         
    hashSet.add(2);         
    hashSet.contains(1);    // returns true
    hashSet.contains(3);    // returns false (not found)
    hashSet.add(2);          
    hashSet.contains(2);    // returns true
    hashSet.remove(2);          
    hashSet.contains(2);    // returns false (already removed)

    Note:

    • All values will be in the range of [0, 1000000].
    • The number of operations will be in the range of [1, 10000].
    • Please do not use the built-in HashSet library.

    Solution1:

    获得的经验

    1 。 remove(self, value)参数是value 2   pop(self, index=None)参数是index

    2. hashset hash是没有重复的元素的因为要hash

    class MyHashSet(object):
    
        def __init__(self):
            """
            Initialize your data structure here.
            """
            self.list = []
    
        def add(self, key):
            """
            :type key: int
            :rtype: void
            """
            if key not in self.list:
                self.list.append(key)
        def remove(self, key):
            """
            :type key: int
            :rtype: void
            """
            if key in self.list:
                self.list.remove(key)
    
        def contains(self, key):
            """
            Returns true if this set contains the specified element
            :type key: int
            :rtype: bool
            """
            return key in self.list
    
    # Your MyHashSet object will be instantiated and called as such:
    # obj = MyHashSet()
    # obj.add(key)
    # obj.remove(key)
    # param_3 = obj.contains(key)
  • 相关阅读:
    《从零开始学Swift》学习笔记(Day 45)——重写方法
    《从零开始学Swift》学习笔记(Day 44)——重写属性
    浅析Android中ndk-build支持的参数
    texstudio on ubuntu 12.04
    arm上的参数列表传递的分析(以android为例)
    编译错误
    native method与so中function的关联
    Java.lang.NoClassDefFoundError--找不到相应的类
    Sublime Text 3 文档
    JNI 函数注册与管理
  • 原文地址:https://www.cnblogs.com/francischeng/p/9747217.html
Copyright © 2020-2023  润新知