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。

