Majority Element
Difficulty: EasyTopic: ArrayHash TableDivide and ConquerSortingCountingLeetcode:169.Majority ElementGiven an array nums
of size n
, return the majority element.
The majority element is the element that appears more than βn / 2β
times. You may assume that the majority element always exists in the array.
Example 1:
Input: nums = [3,2,3]
Output: 3
Example 2:
Input: nums = [2,2,1,1,1,2,2]
Output: 2
Constraints:
n == nums.length
1 <= n <= 5 * 104
-109 <= nums[i] <= 109
Follow-up: Could you solve the problem in linear time and in O(1)
space?
Solution
write solution in here
/**
* @param {number[]} nums
* @return {number}
*/
var majorityElement = function (nums) {
let cache = new Map(), res = 0, maxLen = 0
for (let i = 0; i < nums.length; i++) {
cache.set(nums[i], cache.has(nums[i]) ? cache.get(nums[i]) + 1 : 1)
}
cache.forEach((v, k) => {
if (v > maxLen) {
res = k
maxLen = v
}
})
return res
};