专栏首页后端CoderLeetCode111|独一无二的出现次数

LeetCode111|独一无二的出现次数

0x01,问题简述

给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。

如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。

0x02,示例

示例 1:

输入:arr = [1,2,2,1,1,3]
输出:true
解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。
示例 2:

输入:arr = [1,2]
输出:false
示例 3:

输入:arr = [-3,0,1,-3,1,1,1,-3,10,0]
输出:true
 

提示:

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

0x03,题解思路

使用键值对集合HashMap,集合HashSet来解决

0x04,题解程序

import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;

public class UniqueOccurrencesTest {
    public static void main(String[] args) {
        int[] arr = {1, 2, 2, 1, 1, 3};
        boolean uniqueOccurences = uniqueOccurences(arr);
        System.out.println("uniqueOccurences = " + uniqueOccurences);
    }

    public static boolean uniqueOccurences(int[] arr) {
        int length = arr.length;
        HashMap<Integer, Integer> hashMap = new HashMap<>(length);
        for (int num : arr
        ) {
            hashMap.put(num, hashMap.getOrDefault(num, 0) + 1);
        }
        Collection<Integer> values = hashMap.values();
        HashSet<Integer> hashSet = new HashSet<>();
        hashSet.addAll(values);
        return hashSet.size() == values.size();
    }
}

0x05,题解程序图片版

0x06,总结一下

键值对HashMap的重要性真的是不言而喻的,因为它应用的太广泛了,可以说基本上你做应用就是使用它,和ArrayList的次数相差不大,所以你现在如果不懂的话,可以查阅资料了解一下了

本文分享自微信公众号 - WwpwW(gh_245290c1861a),作者:后端Coder

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-10-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LeetCode156|判断能否形成等差数列

    如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。

    码农王同学
  • 第四篇排序算法|二分查找

    现在回过头来想想学生时代的课程,可谓是用贬义词来形容,是自己的问题还是教学本身存在的问题,还是留给自己去思考和消化吧,因为每个人的故事都很不同。

    码农王同学
  • LeetCode004|合并两个排序的链表

    循环判断两个链表是否为空,若其中一个为空,则直接返回另外一个链表,因为题意链表元素的大小是有序的,使用一个哨兵节点进行数据的接收,当其中一个链表为空,退出循环,...

    码农王同学
  • 选择排序

    选择排序的思想,每次从剩余元素中最小的元素与当前元素交换,第一次从arr[0]arr[n-1]中选取最小值,与arr[0]交换;第二次从arr[1]arr[n-...

    桑鱼
  • java学习之数组元素排序,冒泡排序和选择排序

    吾爱乐享
  • 快速排序

    程序员不务正业
  • 快速排序法,冒泡排序法

    windseek
  • PHP四种排序算法(选择排序)

    阿沐
  • PHP四种排序算法(插入排序)

    阿沐
  • 多图养眼!Partition,荷兰国旗问题与随机快排

    Partition的过程:给定一个数组arr,和一个整数num。把小于等于num的数放在数组的左边,大于num的数放在数组的右边。

    行百里er

扫码关注云+社区

领取腾讯云代金券