Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.
You may assume that the array is non-empty and the majority element always exist in the array.
用hashmap即可搞定。
public static int majorityElement(int[] nums) {
int count;
int len = nums.length / 2;
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 0; i < nums.length; i++) {
if (map.get(nums[i]) != null) {
count = map.get(nums[i]);
count++;
map.put(nums[i], count);
} else {
map.put(nums[i], 1);
}
}
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
int key = (int) it.next();
if (map.get(key) > len) {
return key;
}
}
return -1;
}