LeetCode 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.
题目分析及思路
要求不使用任何内置的hash table库设计一个HashMap。具体要求是:1)put函数能将一对(key, value)插入到HashMap,若已经有value,则进行更新;2)get函数能获得对应key的value,若不存在key,则返回-1;3)remove函数能在key存在的时候去除key以及key对应的value。可以将key和value分别设置为列表,put函数里对key的存在性先进行判断,然后确定添加还是更新。get和remove函数同样需要对key的存在性先进行判断,然后前者获取对应key的索引,后者将key和与key同位置的value一起去掉。
python代码
class MyHashMap:
def __init__(self):
"""
Initialize your data structure here.
"""
self.keys = []
self.vals = []
def put(self, key: int, value: int) -> None:
"""
value will always be non-negative.
"""
if key not in self.keys:
self.keys.append(key)
self.vals.append(value)
else:
self.vals[self.keys.index(key)] = value
def get(self, key: int) -> int:
"""
Returns the value to which the specified key is mapped, or -1 if this map contains no mapping for the key
"""
if key in self.keys:
return self.vals[self.keys.index(key)]
else:
return -1
def remove(self, key: int) -> None:
"""
Removes the mapping of the specified value key if this map contains a mapping for the key
"""
if key in self.keys:
idx = self.keys.index(key)
self.keys.remove(key)
self.vals.pop(idx)
# Your MyHashMap object will be instantiated and called as such:
# obj = MyHashMap()
# obj.put(key,value)
# param_2 = obj.get(key)
# obj.remove(key)
LeetCode 706 Design HashMap 解题报告的更多相关文章
- 【LeetCode】706. Design HashMap 解题报告(Python)
		
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
 - [leetcode] 706. Design HashMap
		
题目 Design a HashMap without using any built-in hash table libraries. Implement the MyHashMap class: ...
 - LeetCode 706. Design HashMap (设计哈希映射)
		
题目标签:HashMap 题目让我们设计一个 hashmap, 有put, get, remove 功能. 建立一个 int array, index 是key, 值是 value,具体看code. ...
 - LeetCode 705 Design HashSet 解题报告
		
题目要求 Design a HashSet without using any built-in hash table libraries. To be specific, your design s ...
 - Leetcode PHP题解--D75 706. Design HashMap
		
2019独角兽企业重金招聘Python工程师标准>>> D75 706. Design HashMap 题目链接 706. Design HashMap 题目分析 自行设计一个has ...
 - 706. Design HashMap - LeetCode
		
Question 706. Design HashMap Solution 题目大意:构造一个hashmap 思路:讨个巧,只要求key是int,哈希函数选择f(x)=x,规定key最大为100000 ...
 - LeetCode 1 Two Sum 解题报告
		
LeetCode 1 Two Sum 解题报告 偶然间听见leetcode这个平台,这里面题量也不是很多200多题,打算平时有空在研究生期间就刷完,跟跟多的练习算法的人进行交流思想,一定的ACM算法积 ...
 - 【LeetCode】Permutations II 解题报告
		
[题目] Given a collection of numbers that might contain duplicates, return all possible unique permuta ...
 - 【Leetcode_easy】706. Design HashMap
		
problem 706. Design HashMap solution1: class MyHashMap { public: /** Initialize your data structure ...
 
随机推荐
- 【Android】Eclipse性能优化,快捷方式,文档注释
			
快捷方式 方法注释的快捷键:ALT + SHIFT +J 格式化:Ctrl+Shift+F 把当前选中的文本全部变味大写:Ctrl+Shift+X 把当前选中的文本全部变为小写:Ctrl+Shift+ ...
 - VS2013 未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService
			
全是2012版本的 没找到2013的! 控制面板>程序>程序和功能 找到如下选中软件右击修复 即可 需关闭VS2013 参考:https://blog.csdn.net/zhaoyun9 ...
 - 法线从object space到eye space的转换((normal matrix)
			
对于顶点来说,从object Space转换到eye space, 使用model-view矩阵就好了.那么顶点的法线是否也可以直接使用model-view矩阵转化? 通常情况下是不行的. 如下两张图 ...
 - vue.js是什么
			
Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习, ...
 - MySQL主从介绍  准备工作 配置主 配置从  测试主从同步
			
配置主: • 安装mysql • 修改my.cnf,增加server-id=130和log_bin=xiaobo1 • 添加环境变量 Vim /root/.bash_profile PATH=$PAT ...
 - 【转载】技巧:Vim 的纵向编辑模式
			
如果要我选一个Vim中让我觉得Life Changing功能的话,我一定会选Vim的块编辑功能,也就是Ctrl+V,虽然还有些别的编辑器也有这功能,但目前为止,我从中受益颇大 原文地址:技巧:Vim ...
 - echarts - 使用echarts过程中遇到的问题(pending...)
			
1. 配合tab切换时,被display:none的元素init设置echarts失败 2018-11-09 18:09:35 现象描述:有一个tabs选项卡,每个切换项A.B中都有使用echart ...
 - 6 CLR静态构造器
			
CLR保证一个类型构造器在每个AppDomain中只执行一次,而且这种执行是线程安全的. 作用: 就是初始化静态成员 比如有几个静态成员需要初始化那你把初始化代码放到哪呢? 放到普通构造函数里,那肯定 ...
 - 【译】python configparser中默认值的设定
			
在做某一个项目时,在读配置文件中,当出现配置文件中没有对应项目时,如果要设置默认值,以前的做法是如下的: try: apple = config.get(section, 'apple') excep ...
 - 关于ie6出现的问题的原因归结
			
关于ie6出现的问题主要可以归结为以下几种情况把. 当然还存在各种原因,bug的情况也还有各种各样,我只是小结一下我自己经常遇到,比较有代表性的问题.会持续的更新. 1.浏览器本身存在的缺陷 比如: ...