思路:哈希表
首先使用哈希表记录每个数字的出现次数;随后再利用新的哈希表,统计不同的出现次数的数目。如果不同的出现次数的数目等于不同数字的数目,则返回 true,否则返回false。
代码:
package com.kami.leetcode.array;
import java.util.*;
public class L_1207 {
public boolean uniqueOccurrences(int[] arr){
Map<Integer, Integer> occur = new HashMap<>();
for (int x : arr) {
occur.put(x, occur.getOrDefault(x, 0) + 1);
}
Set<Integer> times = new HashSet<>();
for (Map.Entry<Integer, Integer> x : occur.entrySet()) {
times.add(x.getValue());
//System.out.println("key:" + x.getKey() + "value:" + x.getValue());
}
/*Iterator<Integer> iterator = times.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}*/
return times.size() == occur.size();
}
}