使用Map遍历一遍链表,找到大于长度一半的元素。
var majorityElement = function(nums) {
if(nums.length===1)return nums[0];
let half = nums.length / 2;
let map = new Map();
for(const ele of nums){
const temp = map.get(ele);
if(temp===undefined){
map.set(ele,1);
}else{
if(temp+1>half)return ele;
map.set(ele,temp+1);
}
}
};
排序数组后,数组中间的元素出现的次数一定大于数组长度的一半。
var majorityElement = function(nums) {
nums.sort((x,y)=>x-y);
return nums[Math.floor(nums.length / 2)];
};