美文网首页
哈希表 05

哈希表 05

作者: 眼若繁星丶 | 来源:发表于2020-10-28 20:57 被阅读0次

哈希表 05


LeetCode 1207

原题链接

哈希表

设置一个哈希表,key为数组的元素值,value为该key值在数组中出现的次数。

然后设置HashSet集合把出现的次数去重,对比去重前后的数据长度就可得是否满足题意。

代码如下:

public class Solution {

    public boolean uniqueOccurrences(int[] arr) {
        // key是数组元素值,value是该值出现的次数
        Map<Integer, Integer> count = new HashMap<Integer, Integer>();
        for (int num : arr) {
            // 遍历数组,记录每个值出现的次数
            count.put(num, count.getOrDefault(num, 0) + 1);
        }
        // 一个是keySet,一个是HashSet,用于出现次数去重
        Set<Integer> key = count.keySet();
        Set<Integer> countSet = new HashSet<Integer>();
        for (Integer k : key) {
            countSet.add(count.get(k));
        }
        // 最终判断去重后是否和非去重的个数相等,即没被去重
        return count.size() == countSet.size();
    }

    public static void main(String[] args) {
        Solution s = new Solution();
        int[] arr = {-3, 0, 1, -3, 1, 1, 1, -3, 10, 0};
        System.out.println(s.uniqueOccurrences(arr));
    }
}

下面为简洁的代码:

public class Solution {
    public boolean uniqueOccurrences(int[] arr) {
        Map<Integer, Integer> count = new HashMap<Integer, Integer>();
        for (int num : arr) {
            count.put(num, count.getOrDefault(num, 0) + 1);
        }
        // Map的values方法,可以返回Collection接口,里面存HashMap里的value值
        return count.size() == new HashSet<Integer>(count.values()).size();
    }

    public static void main(String[] args) {
        Solution s = new Solution();
        int[] arr = {-3, 0, 1, -3, 1, 1, 1, -3, 10, 0};
        System.out.println(s.uniqueOccurrences(arr));
    }
}

相关文章

  • 哈希表 05

    哈希表 05 原题链接[https://s1.ax1x.com/2020/10/28/B3zptJ.png] 哈希...

  • 05-哈希表

    根据尚硅谷韩顺平老师教程。根据学习可知哈希表的结构大致如下 完整代码见底部 HashTab 可以看出在哈希表中用数...

  • Java数据结构_哈希表_基本概念

    本文目标 哈希表的基本概念,哈希冲突,哈希函数 什么是哈希表 哈希表也叫做散列表(hash有剁碎的意思)哈希表是空...

  • redis数据结构--字典

    Redis的字典底层就是哈希表。 哈希表 首先给出哈希表的定义: 其中可以看到,table是一个哈希表节点的数组,...

  • 哈希表和链表

    优秀文章:Chapter: 散列表(哈希表) 一、哈希表 哈希表hashtable(key,value) 就是把K...

  • 算法-哈希表算法总结

    1 哈希表模拟 思路:通过设计哈希表,模拟O(1)时间复杂度的哈希表。 2 数组作为哈希表 思路:数组就是简单的哈...

  • 数据结构 -- 哈希表及其应用

    这篇主要用来记录一下学习到的关于哈希表的知识点。 文章结构 哈希表 哈希表的定义 哈希表的优缺点 哈希碰撞 负载因...

  • 数据结构与算法(第一季):哈希表(Hash Table)

    一、哈希表(Hash Table) 1、概念 哈希表也叫做散列表。 哈希表的原理: 利用哈希函数生成key对应的i...

  • 深入理解哈希表

    深入理解哈希表 深入理解哈希表

  • 2019 算法面试相关(leetcode)--哈希表

    哈希表相关的原理可以参考下:浅谈哈希表(HashTable)深入理解哈希表哈希表的理解理解HashSet及使用 哈...

网友评论

      本文标题:哈希表 05

      本文链接:https://www.haomeiwen.com/subject/mhgcvktx.html