题目:
给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。
如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。
解答:
方法一:
class Solution(object):
def uniqueOccurrences(self, arr):
"""
:type arr: List[int]
:rtype: bool
"""
#用字典dict存储键值,及每个键值出现的次数
dic = {}
for num in arr:
if num not in dic:
dic[num] = 1
else:
dic[num] += 1
#字典res,其value为:出现次数,其key:出现次数的相同值有几个
res = {}
for value in dic:
if dic[value] not in res:
res[dic[value]] = 1
else:
res[dic[value]] += 1
for key in res:
if res[key] >= 2:
return False
return True
简化:
class Solution(object):
def uniqueOccurrences(self, arr):
"""
:type arr: List[int]
:rtype: bool
"""
#用字典dict存储键值,及每个键值出现的次数
dic = defaultdict(int)
for num in arr:
dic[num] += 1
#字典res,value为:出现次数,key:出现次数的相同值有几个
res = defaultdict(int)
for value in dic:
v=dic[value]
res[v] += 1
if res[v]>1:
return False
return True