问题描述
- 给定一个长度为n的整型数组,已知其中一个数字的出现次数超过数组长度的一半,找出这个元素
输入格式
- 一个长度为n的数组,其中某个元素的出现次数大于n/2
输出格式
输入样例
输出样例
数据范围
- 任意长度为n整数数组,其中某个元素的出现次数大于n/2
方法一:统计
import java.util.HashMap;
import java.util.Map;public class Main {public static int solution(int[] array) {// Edit your code hereint length = array.length;Map<Integer,Integer> map = new HashMap<Integer, Integer>(){{for(int i : array){merge(i,1,Integer::sum);}}};for(Map.Entry<Integer,Integer> entry : map.entrySet()){if(entry.getValue() * 2 > length){return entry.getKey();}}return 0;}public static void main(String[] args) {// Add your test cases hereSystem.out.println(solution(new int[]{1, 3, 8, 2, 3, 1, 3, 3, 3}) == 3);}
}