LeetCode1207. 独一无二的出现次数
题干
给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。
如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。
示例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
解题思路
看到有关统计次数的问题,我们很容易第一时间想到使用哈希表来统计。本题就可以用HashMap来将每个数以及其出现次数统计,要判断它们的出现次数是不是独一无二的,可以利用HashSet集合不能有重复的元素这一特点,将出现次数添加到HashSet集合中,比较set集合和map集合的元素个数是否相等,若相等,则返回true;若不想等,则返回false。
AC代码
class Solution {public boolean uniqueOccurrences(int[] arr) {Map<Integer, Integer> occur = new HashMap<Integer, Integer>();for (int x : arr) {occur.put(x, occur.getOrDefault(x, 0) + 1);}//HashSet集合不能有重复的元素Set<Integer> times = new HashSet<Integer>();for (Map.Entry<Integer, Integer> x : occur.entrySet()) {times.add(x.getValue());}return times.size() == occur.size();}
}
注意:
- Map<Integer,Integer>:Map是java中的接口,Map.Entry是Map的一个内部接口,表示Map中的一个实体(一个key-value对)。
- Map.put(K key,V value):将指定的值与此映射中的指定键关联。如果映射以前包含一个键的映射,旧值将被指定的值替换。(也就是说,可以将数组的元素及其出现次数放进map)
- Map.getOrDefault():返回指定的键映射的值,或 defaultValue如果这个Map不包含的键映射。(就是说,我可以获得它的value,但是如果一开始它没有值,为空,我就设置defaultValue为0开始)
- Map.Entry<>:返回一个 Set映射的视图包含在这个Map。该集合是由Map的支持,所以对Map的变化反映在集合中,反之亦然。设置支持元素的去除,从Map中移除相应的映射,通过 Iterator.remove, Set.remove, removeAll, retainAll和 clear操作。它不支持 add或 addAll操作。 结果,映射中包含的映射的一个集合视图。(也就是说,我可以通过for (Map.Entry<Integer, Integer> x : occur.entrySet()) ,循环遍历occur这个map类型的变量)
- map.entrySet():返回包含Map映射的一个集合视图(可以通过视图表示map中的元素,然后搭配Entry<>将元素取出来,只是Entry<>是一个接口,表示实体,而视图是虚拟的)
- Map.Entry<>.getValue():返回对应于此项的值
- Set:包含没有重复元素的集合。
相关文章:
LeetCode1207. 独一无二的出现次数
题干 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。 如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。 示例1: 输入:arr [1,2,2,1,1,3] 输出:true 解释:在该…...
【maven】构建项目前clean和不clean的区别
其实很简单,但是百度搜了一下,还是没人能简单说明白。 搬用之前做C项目时总结结论: 所以自己在IDE里一遍遍测试程序能否跑通的时候,不需要clean,因为反正还要改嘛。 但是这个项目测试好了,你要打成jar包给…...
Stable Diffusion 硬核生存指南:WebUI 中的 CodeFormer
本篇文章聊聊 Stable Diffusion WebUI 中的核心组件,强壮的人脸图像面部画面修复模型 CodeFormer 相关的事情。 写在前面 在 Stable Diffusion WebUI 项目中,源码 modules 目录中,有一个有趣的目录叫做 CodeFormer,它就是本文的…...
从零开始理解Linux中断架构(24)软中断核心函数__do_softirq
1)概要 __do_softirq函数处理是总是尽可能的执行所有未决软中断。 (1)关闭软中断:在preempt_count设置软中断标志:SOFTIRQ_OFFSET 让in_interrupt检查条件为真,进入软中断处理临界区,后面进来的处理请求,需要检查in_interrupt(),从而达到禁止本cpu上的软中断嵌套的目…...
【云原生】Kubernetes中deployment是什么?
目录 Deployments 更新 Deployment 回滚 Deployment 缩放 Deployment Deployment 状态 清理策略 金丝雀部署 编写 Deployment 规约 Deployments 一个 Deployment 为 Pod 和 ReplicaSet 提供声明式的更新能力。 你负责描述 Deployment 中的 目标状态,而 De…...
sk_buff操作函数学习
一. 前言 内核提供了大量实用的操作sk_buff的函数,在开发网络设备驱动程序和修改网络协议栈代码时需要用到。这些函数从功能上可以分为三类:创建,释放和复制socket buffer;操作sk_buff结构中的参数和指针;管理socket b…...
conda create时候出现JSONDecoderError解决方法
起因是我的conda出现了JSONDecoderError,这个我搜了一下是因为某些配置文件错误,所以让我update conda,于是我先用了下面的指令: conda update conda 但是在执行过程中依然会出现 JSONDecoderError的问题,后来参考了这…...
Electron 工具进程utilityProcess 使用中遇到的坑点汇集
简介 这是基于 node.js 中的子进程的概念推出来的,可参考链接:utilityProcess | Electron 官网有一句话非常重要,它提供一个相当于 Node.js 的 child_process.fork API,但使用 Chromium 的 Services API 代替来执行子进程。这句话…...
JdbcTemplate
目录 1、简介 2、开发步骤 2.1、导入坐标 2.2、创建表和类 2.3、创建JdbcTemplate对象 2.4、执行数据库操作 3、解耦 4、增删改查 ⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹…...
PROFINET转TCP/IP网关profinet网线接头接法
大家好,今天要和大家分享一款自主研发的通讯网关,捷米JM-PN-TCPIP。这款网关可是集多种功能于一身,PROFINET从站功能,让它在通讯领域独领风骚。想知道这款网关如何实现PROFINET和TCP/IP网络的连接吗?一起来看看吧&…...
【FPGA IP系列】FIFO的通俗理解
FPGA厂商提供了丰富的IP核,基础性IP核都是可以直接免费调用的,比如FIFO、RAM等等。 本文主要介绍FIFO的一些基础知识,帮助大家能够理解FIFO的基础概念。 一、FIFO介绍 FIFO全称是First In First Out,即先进先出。 FIFO是一个数…...
Kylin v10基于cephadm工具离线部署ceph分布式存储
1. 环境: ceph:octopus OS:Kylin-Server-V10_U1-Release-Build02-20210824-GFB-x86_64、CentOS Linux release 7.9.2009 2. ceph和cephadm 2.1 ceph简介 Ceph可用于向云平台提供对象存储、块设备服务和文件系统。所有Ceph存储集群部署都从…...
框架的前置学习-反射
运行java代码要经历的三个阶段 反射,程序框架设计的灵魂,将类的各个组成部分封装成其他对象,这就是反射机制。 框架:半成品的软件,在框架的基础上进行开发,可以简化编码 反射的好处: 可以在…...
【使用bat脚本实现批量创建文件夹、批量复制文件至对应文件夹中】
使用bat脚本实现批量创建文件夹、批量复制文件至对应文件夹中 常用cmd命令 场景一:在指定位置批量创建文件夹 在桌面创建一个txt文件编写创建目录代码 //在桌面"五保户结算单"的文件夹下创建名称为"1张三"的文件夹 md E:\桌面\五保户结算单\…...
面向视频会议场景的 H.266/VVC 码率控制算法研究
文章目录 面向视频会议场景的 H.266/VVC 码率控制算法研究个人总结摘要为什么要码率控制码率控制的关键会议类视频码率控制研究背景视频会议系统研究现状目前基于 R-λ模型的码率控制算法的问题文章主要两大优化算法优化算法1:基于视频内容相关特征值的码率控制算法…...
【网络基础实战之路】设计网络划分的实战详解
系列文章传送门: 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 PS:本要求基于…...
MacBook触控板窗口管理 Swish for Mac
Swish for Mac是一款用于通过手势来控制mac应用窗口的软件,你可以通过这款软件在触控板上进行手势控制,你可以在使用前预设好不同手势的功能,然后就能直接通过这些手势让窗口按照你想要的方式进行变动了 Swish 支持 Haptick Feedback 震动反…...
VS开发Qt程序,无法打印QDebug调试信息,VS进行Qt开发时Qt Designer无法使用“转到槽”选项
VS开发Qt程序,无法打印QDebug调试信息,VS进行Qt开发时Qt Designer无法使用“转到槽”选项 VS开发Qt程序,无法打印QDebug调试信息VS进行Qt开发时Qt Designer无法使用“转到槽”选项 VS开发Qt程序,无法打印QDebug调试信息 解决方案…...
MySQL操作命令详解:增删改查
文章目录 一、CRUD1.1 数据库操作1.2 表操作1.2.1 五大约束1.2.2 创建表1.2.3 修改表1.2.3 删除表1.2.4 表数据的增删改查1.2.5 去重方式 二、高级查询2.1 基础查询2.2 条件查询2.3 范围查询2.4 判空查询2.5 模糊查询2.6 分页查询2.7 查询后排序2.8 聚合查询2.9 分组查询2.10 联…...
MySQL字段类型与存储空间的关系
在 MySQL 中,对于整数类型(如 INT)、字符类型(如 VARCHAR)、浮点数类型(如 DOUBLE)等,参数(括号中的数字或长度)通常用于限制数据的范围或精度,但…...
Wan2.2-I2V-A14B企业级应用:私有化部署保障数据安全与合规
Wan2.2-I2V-A14B企业级应用:私有化部署保障数据安全与合规 1. 企业级文生视频解决方案概述 在当今内容创作领域,视频生成技术正成为企业数字化转型的关键工具。Wan2.2-I2V-A14B作为新一代文生视频模型,通过私有化部署方案为企业提供了安全可…...
微电网优化调度:PSO与SSA算法的奇妙碰撞
Matlab代码:微电网的优化调度,以微电网的运行成本最小为目标进行优化,并把失负荷惩罚成本计入总目标当中,分别采用PSO算法和麻雀搜索算法(SSA算法,2020年新提出)进行优化求解,可分别…...
紧急预警!Python项目正面临算力瓶颈,Mojo热替换接入方案已获Stripe/Airbnb团队验证
第一章:紧急预警!Python项目正面临算力瓶颈,Mojo热替换接入方案已获Stripe/Airbnb团队验证全球范围内,高并发数据处理、实时AI推理与低延迟金融计算场景正持续加剧Python运行时的算力压力。CPython解释器的GIL限制、内存管理开销及…...
如何让你的第三方鼠标在macOS上重获新生?Mac Mouse Fix让普通鼠标体验提升300%
如何让你的第三方鼠标在macOS上重获新生?Mac Mouse Fix让普通鼠标体验提升300% 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 你是…...
像素史诗·智识终端Claude Code实践:自动化代码生成与审查
像素史诗智识终端Claude Code实践:自动化代码生成与审查 1. 开发者的新助手 最近在开发圈里,一个叫"像素史诗智识终端"的工具开始引起关注。它集成了类似Claude Code的智能代码能力,正在改变开发者们日常工作的方式。想象一下&am…...
告别重复操作:MaaYuan让《代号鸢》游戏管理效率提升80%
告别重复操作:MaaYuan让《代号鸢》游戏管理效率提升80% 【免费下载链接】MaaYuan 代号鸢 / 如鸢 一键长草小助手 项目地址: https://gitcode.com/gh_mirrors/ma/MaaYuan 您是否每天花费1小时以上在《代号鸢》或《如鸢》中完成重复日常任务?MaaYua…...
Qwen3-VL:30B部署实操:Clawdbot配置文件详解、飞书Bot权限申请与事件订阅最佳实践
Qwen3-VL:30B部署实操:Clawdbot配置文件详解、飞书Bot权限申请与事件订阅最佳实践 1. 项目概述与准备工作 1.1 项目介绍 本项目将带你从零开始,在CSDN星图AI云平台上私有化部署最强的多模态大模型Qwen3-VL:30B,并通过Clawdbot搭建一个既能…...
Adobe Illustrator 2026 v30(AI2026)安装教程及下载
我用夸克网盘给你分享了「矢量绘图Adob...已激活版」,点击链接或复制整段内容,打开「夸克APP」即可获取。筷莱蜴蝮鰉鰗鰘夺郝/~b12b3Y1kyM~:/链接:https://pan.quark.cn/s/38566e6aec26Adobe矢量绘图软件Adobe Illustrator 2026(AI2026)是一款…...
3PEAK思瑞浦 TPW4052-TR TSSOP16 模拟开关/多路复用器
特性模拟开关电压:3.3V、5V、10V、5V低导通电阻:在 Vs 4.5V 或 9V 时典型值为 50Ω;在 Vs 4.5V 时典型值为 60Ω;在 VS 3V 时典型值为 300Ω带宽:200 MHz快速开关时间:ΔtON 60 ns,tOFF 50…...
欧拉角内旋外旋傻傻分不清?一个动画演示让你秒懂(附Python代码)
欧拉角内旋与外旋的视觉化解析:用Python动画破解3D旋转迷思 刚接触3D图形学的开发者,往往会在欧拉角的内旋(intrinsic rotation)与外旋(extrinsic rotation)概念前陷入困惑。数学公式的抽象性让这两个本应…...
