2017.9.22
应该就是个计数问题吧
public class Solution {
/*
* @param nums: a list of integers
* @return: The majority number that occurs more than 1/3
*/
public int majorityNumber(List<Integer> nums) {
// write your code here
HashMap<Integer,Integer> map = new HashMap<>();
int size = nums.size();
if(size == 0){
return -1;
}
int count = size/3 + 1;
Iterator itr = nums.iterator();
while(itr.hasNext()){
Integer tmp = (Integer)itr.next();
if(map.containsKey(tmp)){
int n = (int)map.get(tmp);
n ++;
map.put(tmp, n);
if(n >= count){
return tmp;
}
}
else{
map.put(tmp, 1);
}
}
return nums.get(0);
}
}
本文介绍了一种使用HashMap实现的算法,该算法用于从整数列表中找出出现次数超过总数1/3的多数元素。通过迭代列表并记录每个元素出现的频率,一旦发现某个元素的出现次数达到阈值,则返回该元素。
435

被折叠的 条评论
为什么被折叠?



