169. Majority Element
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.
Example 1:
Input: [3,2,3]
Output: 3
Example 2:
Input: [2,2,1,1,1,2,2]
Output: 2
解法
基本是solution当中提供的解法
MAP
最近在学java map所以首先想到的就是map,先写一个函数用于将不同值出现的次数存储在map当中
private Map<Integer,Integer> cnts(int[] nums)
{
Map<Integer,Integer> counts=new HashMap<Integer,Integer>();
for(int i:nums){
if(!counts.containsKey(i)){
counts.put(i,1);
}
else
{
counts.put(i,counts.get(i)+1);
}
}
return counts;
}
然后遍历map,将其中键值对应的最大value取出
public int majorityElement(int[] nums) {
Map<Integer,Integer> counts = cnts(nums);
Map.Entry<Integer,Integer> major=null;
for(Map.Entry<Integer,Integer> entry:counts.entrySet())
{
if(major==null||entry.getValue()>major.getValue())
major=entry;
}
return major.getKey();
}