🌗 1207. 独一无二的出现次数

吞佛童子2022年6月20日
  • algorithm
  • hash
小于 1 分钟

🌗 1207. 独一无二的出现次数

难度: 🌗

问题描述

img_1.png


解法

class Solution {
    public boolean uniqueOccurrences(int[] arr) {
        // 思路:
        // 一个 map 存储每个数的出现频次
        // 遍历 values() 查看是否有重复
        int len = arr.length;
        HashMap<Integer, Integer> map = new HashMap<>();
        // 遍历 arr,只有全部遍历完,才能判断是否有重复,否则即使中间重复,之后频次可能发生改变,导致不重复
        for(int i : arr) {
            if(!map.containsKey(i)) {
                map.put(i, 1);
            } else {
                int count = map.get(i);
                count ++;
                map.put(i, count);
            }
        }
        // 遍历 map 的 values
        HashSet<Integer> set = new HashSet<>();
        for(int val : map.values()) {
            if(!set.contains(val)) {
                set.add(val);
            } else {
                return false;
            }
        }
        return true;
    }
}

输出

img.png

上次编辑于: 2022/6/20 下午8:24:47
贡献者: liuxianzhishou