数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
package com.example.study; import java.util.Arrays; import java.util.HashMap; import java.util.Map; /** *author:bingbing *日期:2020年7月4日 *时间:下午3:12:46 *数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 */ public class demo03 { public static void main(String[] args) { int a[]=new int[] {1, 2, 3, 2, 2, 2, 5, 4, 2}; Map<Integer,Integer> countMap=new HashMap<Integer,Integer>(); int count=0; System.out.println(Arrays.toString(a)); for(int i=0;i<a.length;i++) { if(countMap.containsKey(a[i])) { countMap.put(a[i], countMap.get(a[i])+1); }else { countMap.put(a[i], count+1); } } //找出map中key对应的value的值大于数组长度一半的值。 int length=a.length/2; for(Object key:countMap.keySet()) { if(countMap.get(key)>length) { System.out.println("该数字为:"+key); } } } }