求众数
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于
⌊ n/2 ⌋
的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1:
输入: [3,2,3] 输出: 3示例 2:
输入: [2,2,1,1,1,2,2] 输出: 2
遍历数组,将元素及其对应的个数存进一个 对象 中,然后遍历对象,找到元素个数超过 n/2 的那个元素:
/** * @param {number[]} nums * @return {number} */ var majorityElement = function(nums) { let map = {}; let result; for(let i=0;i<nums.length;i++){ if(!map[nums[i]]){ map[nums[i]] = 1; }else{ map[nums[i]] ++; } } for(let k in map){ if(map[k]>Math.floor(nums.length/2)){ result = k; } } return result; };