Java 题解 | #不同的体重#
不同的体重
https://www.nowcoder.com/practice/4a6411ef749445e88baf7f93d1458505
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 * @return bool布尔型 */ public boolean uniqueOccurrences (int[] arr) { // write code here HashMap<Integer, Integer> count = new HashMap<>(); for (int num : arr) { count.put(num, count.getOrDefault(num, 0) + 1); } HashSet<Integer> times = new HashSet<>(); for (int occurrence : count.values()) { if (!times.add(occurrence)) { return false; } } return true; } }
编程语言是Java。
该题考察的知识点包括:
- 数组的遍历
- HashMap的基本操作
- HashSet的基本操作
代码的文字解释大纲如下:
- 在uniqueOccurrences方法中,创建一个HashMap对象count,用来统计每个元素出现的次数。
- 使用for-each循环遍历整数数组arr,对每个元素进行计数,将结果存储在count中。
- 创建一个HashSet对象times,用来存储出现的次数,以便判断是否有重复的次数出现。
- 使用for-each循环遍历count的值集合,即每个元素出现的次数。
- 在循环中,使用HashSet的add方法判断是否有重复的次数出现。若有重复次数,说明每个元素的出现次数不是唯一的,返回false。
- 若循环结束仍没有发现重复的次数,说明每个元素的出现次数都是唯一的,返回true。