1910. 数组中出现次数最多的值
在给定的数组中,找到出现次数最多的数字。
出现次数相同时,返回数值最小的数字。
样例
样例 1:
输入:
[1,1,2,3,3,3,4,5]
输出:
3
样例 2:
输入:
[1]
输出:
1
注意事项
数组长度不超过100000。
0 <= a[i] <= 2147483647
public class Solution {
/**
* @param array: An array.
* @return: An integer.
*/
public int findNumber(int[] array) {
HashMap headMap=new HashMap<>(array.length);
for (int value : array) {
if (headMap.containsKey(value)) {
int temp = headMap.get(value);
temp++;
headMap.put(value, temp);
} else {
headMap.put(value, 1);
}
}
int ret=0;
int max=0;
for (Map.Entry entry : headMap.entrySet()) {
if (entry.getValue()>max){
max=entry.getValue();
ret = entry.getKey();
}else if (entry.getValue()==max){
ret = Math.min(ret,entry.getKey());
}
}
return ret;
}
}