class Solution {
public:
bool uniqueOccurrences(vector<int>& arr) {
}
};
1207. 独一无二的出现次数
给你一个整数数组 arr
,请你帮忙统计数组中每个数的出现次数。
如果每个数的出现次数都是独一无二的,就返回 true
;否则返回 false
。
示例 1:
输入:arr = [1,2,2,1,1,3] 输出:true 解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。
示例 2:
输入:arr = [1,2] 输出:false
示例 3:
输入:arr = [-3,0,1,-3,1,1,1,-3,10,0] 输出:true
提示:
1 <= arr.length <= 1000
-1000 <= arr[i] <= 1000
原站题解
golang 解法, 执行用时: 0 ms, 内存消耗: 2.3 MB, 提交时间: 2020-10-28 19:19:14
func uniqueOccurrences(arr []int) bool { cnts := make(map[int]int) for _, v := range arr { cnts[v]++ } bs := make(map[int]bool) for _, c := range cnts { if bs[c] { return false } else { bs[c] = true } } return true }
python3 解法, 执行用时: 40 ms, 内存消耗: 13.4 MB, 提交时间: 2020-10-28 19:10:47
class Solution: def uniqueOccurrences(self, arr: List[int]) -> bool: return (lambda c: len(c) == len(set(c)))(collections.Counter(arr).values())
python3 解法, 执行用时: 56 ms, 内存消耗: 13.6 MB, 提交时间: 2020-10-28 19:04:28
class Solution: def uniqueOccurrences(self, arr: List[int]) -> bool: map = dict() for i in arr: if i in map.keys(): map[i] += 1 else: map[i] = 1 return len(map.values()) == len(set(map.values()))