給定一個整型數組,找到主元素,它在數組中的出現次數嚴格大於數組元素個數的三分之一。
注意事項
數組中只有唯一的主元素
給出數組[1,2,1,2,1,3,3] 返回 1
public class Solution {
/**
* @param nums: A list of integers
* @return: The majority number that occurs more than 1/3
*/
public int majorityNumber(ArrayList<Integer> nums) {
// 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()/3){
return temp;
}
}
return 0;
}
}