题解 | #数组中出现次数超过一半的数字#
数组中出现次数超过一半的数字
https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163
import java.util.*;
public class Solution {
public int MoreThanHalfNum_Solution(int [] numbers) {
if (numbers.length==1){
return numbers[0];
}
int ret = 0;
int n = numbers.length/2+1;//注意四舍五入
HashMap<Integer,Integer> map = new HashMap<>();
for (int i = 0; i < numbers.length; i++) {
map.put(numbers[i],map.getOrDefault(numbers[i],0)+1);
}
for(int x :numbers){
if (map.get(x)>=n ){
ret = x;
}
}
return ret;
}
}
查看15道真题和解析