题意:找出数组中出现了次数大于⌊ n/2 ⌋ 次的元素
解题思路:
依然是HashMap的应用,遍历数组,然后把每个元素的次数记录下来,如果出现次数大于⌊ n/2 ⌋的元素,则返回该元素
代码:
public class Solution {
public int majorityElement(int[] nums) {
Map<Integer,Integer> map = new HashMap<Integer, Integer>();
int i, len=nums.length;
int index=0,times;
if(len %2 ==0){
times=len/2;
}else{
times=len/2+1;
}
for(i=0;i<len;i++){
if(map.containsKey(nums[i])){
int a = map.get(nums[i]);
map.put(nums[i],++a);
}else {
map.put(nums[i],1);
}
if(map.get(nums[i]) >= times) {
index=i;
break;
}
}
return nums[index];
}
}