Given an array of size n, find the majority element. The majority element is the element that appears more than ?
times.
n/2 ?
You may assume that the array is non-empty and the majority element always exist in the array.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
要求找出出现次数过半的数组元素 只要使用哈希表 进行一次遍历存储 满足hm.get(num[i])>num.length/2-1的即使所求结果 代码如下:
public class Solution { public int majorityElement(int[] num) { Map<Integer,Integer> hm=new HashMap<Integer,Integer>(); for(int i=0;i<num.length;i++){ if(hm.containsKey(num[i])){ if(hm.get(num[i])>num.length/2-1){ return num[i]; }else{ hm.put(num[i],hm.get(num[i])+1); } }else{ hm.put(num[i],1); } } return num[0]; } }
时间: 2024-10-12 13:02:00