day16-哈希表练习题力扣217

在这里插入图片描述
思路:
对于示例1:[1, 2 ,3, 1],1出现了2次,2出现了1次,3出现了1次,这种统计结果显示了有2个值一一对应。所以想到用Hash表来存。
1.创建Hash表有2种方式,一是数组,二是用自带函数。如果用数组来创建需要明确数组里有多少元素,所以这里用第二种,对应Python里的字典。
2.key存数组元素,value存对应元素出现的次数。
3.用指针从头到尾遍历。
4.读Hash表每个key的值,如果>1则返回True。

Python代码:

def containsDuplicate(self, nums):
	"""
	:type nums: List[int]
	:rtype: bool
	"""
	if len(nums) == 0:
	    return False
	mapping = {}
	for num in nums:
	    if num not in mapping:
	        mapping[num] = 1
	    else:  # 扩展:这里是为了统计每个元素的次数,如果仅仅是本题这里就可以返回True
	        mapping[num] = mapping.get(num) + 1
	for v in mapping.values():
	    if v > 1:
	        return True
	return False
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值