给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的1/k。
注意事项
数组中只有唯一的主元素
样例
给出数组 [3,1,2,3,2,3,3,4,4,4] ,和 k = 3,返回 3
public class Solution {
/**
* @param nums: A list of integers
* @param k: As described
* @return: The majority number
*/
public int majorityNumber(ArrayList<Integer> nums, int k) {
// write your code
HashMap<Integer,Integer> map=new HashMap<Integer, Integer>();
map.put(nums.get(0), 1);
for(int i=1;i<nums.size();i++){
if(map.containsKey(nums.get(i))){
map.put(nums.get(i), map.get(nums.get(i))+1);
}else{
map.put(nums.get(i), 1);
}
}
Set<Integer> set=map.keySet();
Iterator<Integer> it=set.iterator();
while(it.hasNext()){
int temp=it.next();
if(map.get(temp)>nums.size()/k){
return temp;
}
}
return 0;
}
}