码迷,mamicode.com
首页 > 其他好文 > 详细

1207. 独一无二的出现次数『简单』

时间:2020-06-21 19:42:49      阅读:48      评论:0      收藏:0      [点我收藏+]

标签:重复   als   nta   lang   相等   keyset   次数   boolean   string   

题目来源于力扣(LeetCode

一、题目

1207. 独一无二的出现次数

题目相关标签:哈希表

技术图片

提示:

  • 1 <= arr.length <= 1000
  • -1000 <= arr[i] <= 1000

二、解题思路

2.1 哈希表

  1. 遍历 arr 数组,用哈希表记录下每个数组元素出现的次数

  2. 遍历哈希表,通过 map.containsValue() 方法判断哈希表中的值是否存在重复

    判断前,需要将本次遍历的值修改为 0

2.2 哈希表 + Set 去重

  1. 遍历 arr 数组,用哈希表记录下每个数组元素出现的次数

  2. 记录下哈希表中值的个数 size

  3. 通过 new HashSet<>(map.values()) 来创建 Set 集合

  4. 因 Set 集合自带去重效果,最后判断 Set 集合的元素个数与 size 是否相等

  5. 相等即说明各数组元素出现的次数均不相同

三、代码实现

3.1 哈希表

public static boolean uniqueOccurrences(int[] arr) {
    Map<Integer, Integer> map = new HashMap<>();
    for (int i = 0; i < arr.length; i++) {
        // 将数字与其出现的次数存储到 map 中
        map.put(arr[i], map.getOrDefault(arr[i], 0) + 1);
    }
    Set<Integer> set = map.keySet();
    for (Integer i : set) {
        int j = map.get(i);
        // 令 i 的值为 0
        map.put(i, 0);
        // 修改 i 的值后再判断 i 之前的值是否还存在,存在则说明重复
        if (map.containsValue(j)) {
            return false;
        }
    }
    return true;
}

3.2 哈希表 + Set 去重

public static boolean uniqueOccurrences(int[] arr) {
    Map<Integer, Integer> map = new HashMap<>();
    for (int i = 0; i < arr.length; i++) {
        // 将数字与其出现的次数存储到 map 中
        map.put(arr[i], map.getOrDefault(arr[i], 0) + 1);
    }
    int size = map.values().size();
    int setSize = new HashSet<>(map.values()).size();  // set集合去重
    return size == setSize;
}

四、执行用时

4.1 哈希表

技术图片

4.2 哈希表 + Set 去重

技术图片

五、部分测试用例

public static void main(String[] args) {
    int[] arr = {1, 2, 2, 1, 1, 3};  // output: true
//    int[] arr = {1, 2};  // output: false
//    int[] arr = {-3, 0, 1, -3, 1, 1, 1, -3, 10, 0};  // output: true

    boolean result = uniqueOccurrences(arr);
    System.out.println(result);
}

1207. 独一无二的出现次数『简单』

标签:重复   als   nta   lang   相等   keyset   次数   boolean   string   

原文地址:https://www.cnblogs.com/zhiyin1209/p/13173617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!