题目:
给你一个非递减的 有序 整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的 25%。
请你找到并返回这个整数
示例:
输入:arr = [1,2,2,6,6,6,6,7,10]
输出:6
源码:
class Solution {
public int findSpecialInteger(int[] arr) {
if (arr.length == 1) {
return arr[0];
}
double num = arr.length / 4;
Map<Integer, Integer> map = new HashMap<>();
int tmp = 0;
for (int x : arr) {
map.put(x, map.getOrDefault(x, 0) + 1);
int count = map.get(x);
if ((double)count > num) {
tmp = x;
break;
}
}
return tmp;
}
}