常用操作
#create hashtable by dict
ht = {}
#add element
ht[1] = 'hmm'
ht[2] = 'lh'
ht[3] = 'cc'
#update element
ht[1] ='lh'
#remove element
ht.pop(1)
del ht[1]
#get value
ht[1]
#check key
3 in ht #return True
4 in ht #return False
#length
len(ht)
#is empty
len(ht)==0
特点:对key的search, insert, delete 很快
Leetcode题目
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
def twoSum (self, nums:List[int],target:int) -> List[int]:
#create hashtable by dict
ht = dict()
#foreach num in nums, find answers
for i, num in enumerate (nums):
if target-num in ht:
return [ht[target-num],i]
ht[num] = i
return []