一. 题目
-
题目
给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。
-
示例
二. 方法一
-
解题思路
- 先统计列表中每一个元素的个数
- 然后获取元素个数的集合(集合会过滤掉重复的数据)
- 如果集合的长度等于元素的个数, 则说明每个元素的个数都不相同, 返回True
- 如果集合的长度小于元素的个数, 则说明存在个数相同的元素, 返回False
-
解题代码
def uniqueOccurrences(self, arr: List[int]) -> bool: map1 = collections.Counter(arr) set1 = set(map1.values()) if len(map1) == len(set1): return True else: return False
-
分析
时间复杂度: O(n)
空间复杂度: O(n)