面试题:数组中出现次数超过一半的数字
Posted aaron12
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题:数组中出现次数超过一半的数字相关的知识,希望对你有一定的参考价值。
题目描述:
方法1:哈希表
import java.util.HashMap; public class Solution { public int MoreThanHalfNum_Solution(int [] array) { HashMap<Integer,Integer> map = new HashMap<>(); for(int i=0;i<array.length;i++){ Integer key=array[i]; Integer value=map.get(key); if(value!=null){ map.put(key,value+1); }else{ map.put(key,1); } } for(int i=0;i<array.length;i++){ int val=map.get(array[i]); if(val>array.length/2) return array[i]; } return 0; } }
Map.containsKey()方法--判断Map集中是否包含指定键名
Map.get()方法--判断某个value值在map中出现了几次
方法2:排序后计数,java.util.Arrays中有Arrays.sort()方法直接调用
以上是关于面试题:数组中出现次数超过一半的数字的主要内容,如果未能解决你的问题,请参考以下文章
剑指OFFER----面试题39. 数组中出现次数超过一半的数字