LeetCode111|独一无二的出现次数
时间:2022-07-28
本文章向大家介绍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的次数相差不大,所以你现在如果不懂的话,可以查阅资料了解一下了
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Nginx配置访问控制
- Nginx相关命令以及配置文件
- 通过域名获取主机IP -- struct addrinfo
- redis学习(十二)
- go基础-格式化输出时的占位符总结(draft)
- Mysql中间件360 Atlas踩坑
- 从RabbitMQ Channel设计看连接复用
- RabbitMQ网络框架代码分析
- RabbitMQ网络框架代码分析二:命令分发
- Redis迁移工具redis-port使用&代码分析
- 分布式文件系统FastDFS
- Skywalking Php系统一:介绍&安装
- Skywalking Php二:代码分析
- RabbitMQ源代码分析系列三:消息存储
- 一次线上Mysql死锁分析