zoukankan      html  css  js  c++  java
  • 706. Design HashMap

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

    To be specific, your design should include these functions:

    • put(key, value) : Insert a (key, value) pair into the HashMap. If the value already exists in the HashMap, update the value.
    • get(key): Returns the value to which the specified key is mapped, or -1 if this map contains no mapping for the key.
    • remove(key) : Remove the mapping for the value key if this map contains the mapping for the key.

    Example:

    MyHashMap hashMap = new MyHashMap();
    hashMap.put(1, 1);
    hashMap.put(2, 2);
    hashMap.get(1); // returns 1
    hashMap.get(3); // returns -1 (not found)
    hashMap.put(2, 1); // update the existing value
    hashMap.get(2); // returns 1
    hashMap.remove(2); // remove the mapping for 2
    hashMap.get(2); // returns -1 (not found)

    Note:

    • All keys and 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 HashMap library.
    class MyHashMap:
    
        def __init__(self):
            """
            Initialize your data structure here.
            """
            self.a = []
            self.b = []
    
    
        def put(self, key, value):
            """
            value will always be non-negative.
            :type key: int
            :type value: int
            :rtype: void
            """
            if key in self.a:
                pos = self.a.index(key)
                self.b[pos] = value
            else:
                self.a.append(key)
                self.b.append(value)
            return
    
        def get(self, key):
            """
            Returns the value to which the specified key is mapped, or -1 if this map contains no mapping for the key
            :type key: int
            :rtype: int
            """
            if key in self.a:
                pos = self.a.index(key)
                return self.b[pos]
            else:
                return -1
    
        def remove(self, key):
            """
            Removes the mapping of the specified value key if this map contains a mapping for the key
            :type key: int
            :rtype: void
            """
            if key in self.a:
                pos = self.a.index(key)
                self.a.pop(pos)
                self.b.pop(pos)
            return 
    # Your MyHashMap object will be instantiated and called as such:
    # obj = MyHashMap()
    # obj.put(key,value)
    # param_2 = obj.get(key)
    # obj.remove(key)
    
  • 相关阅读:
    年度开源盛会 ApacheCon 来临,Apache Pulsar 专场大咖齐聚
    开源流数据公司 StreamNative 正式加入 CNCF,积极推动云原生策略发展
    php摇杆Tiger摇奖
    php调试局部错误强制输出 display_errors
    php文件写入PHP_EOL与FILE_APPEND
    window自动任务实现数据库定时备份
    php 跨服务器ftp移动文件
    linux 关于session缓存丢失,自己掉坑里面了
    mysql 定时任务
    mysql 查询去重 distinct
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9836204.html
Copyright © 2011-2022 走看看