LeetCode 1207 独一无二的出现次数

LeetCode 1207 独一无二的出现次数

问题描述:
给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。
如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。

Map+Set

执行用时:2 ms, 在所有 Java 提交中击败了91.43%的用户
内存消耗:36 MB, 在所有 Java 提交中击败了97.92%的用户

class Solution {
    public boolean uniqueOccurrences(int[] arr) {
        if(arr==null || arr.length==0) {
            return false;
        }
        //hashmap统计
        HashMap<Integer, Integer> hashMap = new HashMap<>();
        for(int num: arr) {
            hashMap.put(num, hashMap.getOrDefault(num, 0)+1);
        }

        //查找是否存在重复
        Set<Integer> hashSet = new HashSet<>();
        for(Integer num: hashMap.values()) {
            if(hashSet.isEmpty() || !hashSet.contains(num)) {
                hashSet.add(num);
            }
            else {
                return false;
            }
        }

        return true;
    }
}
posted @ 2020-10-28 08:50  CodeSPA  阅读(80)  评论(0编辑  收藏  举报