题目描述:

image.png

示例:

image.png

解题思路:

1.哈希表
2.分治法
解(1):
public int majorityElement(int[] nums) {
Integer res=null;//定义变量res来接收函数返回的结果
HashMap hm=new HashMap();//创建哈希表
for(int i=0;i int key=nums[i];//将拿得到的每一个值作为键
Integer values=hm.get(key);//拿得到的每一个值作为键到HashMap集合中去找对应的值,看其返回值 (注意:values的类型一定要是Integer,不能是int,否则会报int类型不能为null的错误)
//如果返回值是null:说明该字符在HashMap集合中不存在,就把该字符作为键,1作为存储值
if(values==null){
hm.put(key,1);
}else{
//如果返回值不是null:说明该字符在HashMap集合中存在,把该值加1,然后重新
//存储该字符和对应的值
++values;
hm.put(key,values);
}
}
Set keySet=hm.keySet();//得到键的集合
for(Integer key:keySet){//遍历键的集合
Integer value=hm.get(key);//得到对应的值
if(value>nums.length/2){
res=key;
}
}
return res;
}