给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
HashMap
时间复杂度O(n) 空间复杂度O(n)
var majorityElement = function(nums) {
const n = nums.length / 2, map = {};
for (let i = 0; i < nums.length; i++) {
map[nums[i]] = map[nums[i]] ? map[nums[i]] + 1 : 1
if (map[nums[i]] >= n) {
return nums[i]
}
}
return null
};
排序
var majorityElement = function(nums) {
nums.sort((a, b) => a - b)
return nums[Math.ceil(nums.length/2)]
}