Loading

1207. 独一无二的出现次数

1207. 独一无二的出现次数

方法一:哈希表

第一步都是要先计算每个数出现的次数。后面的只需要判断这个出现次数的数组中元素是否有重复的即可。

我们知道集合Set是不能有重复元素的,如果有就会替换掉,我们可以把出现次数的数组放到集合Set中,如果有重复的就会被替换掉,那么Set的大小肯定和出现次数的数组长度不一样。

以下解法,将Set替换成了一个整型数组,解法类似。

// 执行耗时:2 ms,击败了91.43% 的Java用户
// 内存消耗:37.9 MB,击败了13.04% 的Java用户

class Solution {
    public boolean uniqueOccurrences(int[] arr) {
        HashMap<Integer, Integer> hashMap = new HashMap<>();
        //  HashSet<Integer> hashSet = new HashSet<>();
        int[] cnt = new int[1001];
        for(int num:arr){
            hashMap.put(num, hashMap.getOrDefault(num, 0)+1);
        }
        for(int num:hashMap.values()){
            if(cnt[num] == 1){
                return false;
            } else {
                cnt[num]++;
            }
        }
        return true;
    }
}
posted @ 2020-10-28 22:16  上海井盖王  阅读(73)  评论(0)    收藏  举报